cromagnon Posted May 21, 2005 Share Posted May 21, 2005 Hi folks, I have creating a bunch of characters as otls and have them installed in a couple of hip files. I have embedded the textures so that they don't require any other files. In fact, I need to hand the hip files to my tutor since this is an assignment and prefer that he only need the hip files and audio. Thats one reason why I made otls (cause I think its cool I moved the hip file to another location to test this and everything seemed fine until I did a quick render. The textures weren't there. Just the "I don't know where the texture is so I will be pink". In the viewport however the textures are fine. In the manual it says "Within the scene file there is an embedded OTL that can contain operator definitions that have been saved into the scene. This definition can be used by the scene if the disk-based definition is missing." So I assume the hip file shouldn't need the otl. I checked the shopnetwork and it finds the textures ok. The texture map is being referenced in the shader using the "opdef:" syntax as well. If I install the otls from the file menu, then everything is fine, but I don't want the tutor to have to do this in each hip file for each otl. Any ideas on whats wrong? Thanks in advance for any help Dave PS: Sorry for the lengthy post. I just want to try to make it clear what I have done. (I have posted this at the community forum as well. Not sure if these are linked but just to be safe...) Quote Link to comment Share on other sites More sharing options...
michael Posted May 21, 2005 Share Posted May 21, 2005 the hip file does need the OTLs.... when the manual mentions an embedded OTL it is refering to an OTL that is saved within the hip file and not one that resides on disc. Quote Link to comment Share on other sites More sharing options...
cromagnon Posted May 21, 2005 Author Share Posted May 21, 2005 Yeah thats what I figured. My otls were saved in with hip file. So I've got all the geometry and the shaders that don't rely on anything external rendering fine. I don't understand why the textures aren't being rendered even though they are applied in the viewport. Quote Link to comment Share on other sites More sharing options...
djpeanut Posted May 23, 2005 Share Posted May 23, 2005 Yeah thats what I figured. My otls were saved in with hip file. So I've got all the geometry and the shaders that don't rely on anything external rendering fine. I don't understand why the textures aren't being rendered even though they are applied in the viewport. 18345[/snapback] Sounds like you should check the paths to your textures in your shaders. The OpenGL texture reference must be correct but the mantra one may not be... Quote Link to comment Share on other sites More sharing options...
cromagnon Posted May 24, 2005 Author Share Posted May 24, 2005 I checked the path of my shaders and they seem ok: Example: opdef:/Object/clown?face.jpg I'm not sure what you mean by "Mantra texture reference" and "OpenGL Texture reference" The path I'm quoting is from the shader in my shop network. Is there another place where the path needs to set? Quote Link to comment Share on other sites More sharing options...
djpeanut Posted May 24, 2005 Share Posted May 24, 2005 I checked the path of my shaders and they seem ok: Example: opdef:/Object/clown?face.jpg I'm not sure what you mean by "Mantra texture reference" and "OpenGL Texture reference" The path I'm quoting is from the shader in my shop network. Is there another place where the path needs to set? 18382[/snapback] If you click on the OpenGL tab in your shader parameter pane, you'll see the texture is referenced there as well as in the appropriate section of the Parms pane. AFAIK the OpenGL tab is where the shader is configured for OpenGL shaded rendering, and also the OpenGL 3D viewport. What I'm saying is that if your shader is showing up on the viewport, its path must be correct in the OpenGL tab of your shader. But if it's not showing up in your renders, maybe the path in the Parms pane is somehow different... Quote Link to comment Share on other sites More sharing options...
deecue Posted May 24, 2005 Share Posted May 24, 2005 it sounds like your texture cache hasn't been cleared.. houdini holds a cache for opengl texture viewing.. it might still have something embedded in the cache that isn't actually there anymore (which is why you would see it in the viewport and not the render).. go to the textport and type " texcache -c ".. now see if your viewport loses the texture.. if it does, then the problem is obviously that the reference is somehow wrong.. if it stays, then well you got me.. Quote Link to comment Share on other sites More sharing options...
cromagnon Posted May 25, 2005 Author Share Posted May 25, 2005 I checked OpenGL tab and it has the reference `chs(map)`. Removing this removed the texture from the viewport. Adding it back set the texture back on. So I don't think this is the problem. I was hoping the "texcache -c" command would remove the texture from the viewport but no, its still there - even after restarting. It really seems like my path must be wrong, but I can't see anything wrong with it.... .. I did just notice that my paths to my shopnet from my shaders were the short form of the relative path. (ie: ../shopnet/bla). Alas fixing this didn't help. This sounds like its worth a support call. I have attached a hip file to show an example of the problem have. I will email support but if you find anything let me know. Thanks for your help Dave missing_tex.zip Quote Link to comment Share on other sites More sharing options...
deecue Posted May 25, 2005 Share Posted May 25, 2005 hey dave, it's your jpg.. that's a no good for the embedded otl.. go convert it to a .rat, embed that instead, and it should work.. a good way to determine problems like these is to turn on verbose in the mantra output.. because i went through your file and everything seemed fine.. i even saved out the texture from the otl, deleted it, and then re-embedded it.. no luck.. everything seemed to be fine, so i was about to come on here and say that using a jpg is probably not the best idea.. go try a tif or tga and see if that fixes it.. but then i was figured i should see what mantra's doing before posting.. so i quickly turned on the loading information in the verbose options.. checked it out and got the following: "Unable to access file opdef:/Object/cat?cat_fur2.jpg mantra: Texture opdef:/Object/cat?cat_fur2.jpg doesn't appear to be in .rat format This will affect anti-aliasing and memory usage. Unable to load texture 'opdef:/Object/cat?cat_fur2.jpg' " so yea.. that stuff is invaluable at times.. hth, dave Quote Link to comment Share on other sites More sharing options...
cromagnon Posted May 26, 2005 Author Share Posted May 26, 2005 Thanks the suggestions Dave. I added a rat file to the otl.(I seems that using the Apprentice version at home will not allow me use iconvert or ipc to convert to a rat file.) I checked its dependency on my otls directory by chanhging its name and reloaded the hip file. Unfortunately I still have the same problem. I turned the verbose option as you suggested and get this: Unable to access file opdef:/Object/cat?shelltextr.rat mantra: Texture opdef:/Object/cat?shelltextr.rat doesn't appear to be in .rat format This will affect anti-aliasing and memory usage. Do you think its possibly related to my version being an Apprentice version? Also after just mucking around with adding .rat images using the ones I have, I encountered the following issue: I currently have Vex_Decal shaders for adding the texture. When I use the rat file, the roughness and specular are really intense and the diffuse colour swamps the geometry when its applied. This doesn't seem to be the case with Vex_Layered shaders so I change the type to a layered shader because I have my capture locked but didn't key all the bones and dont want to have to recapture my geometry. Anyway, using this technique works great in the render but the opengl settings dont update their parameters. They are all 0. The textures show as black in the viewport which is really difficult to work with. The opengl params seem to have the correct params so i deleted these channels and retyped the channel references manually. Still black. Quote Link to comment Share on other sites More sharing options...
deecue Posted May 26, 2005 Share Posted May 26, 2005 wow.. yea.. now i really don't know what to tell you.. this is wierd.. i don't know how much more i can offer but maybe someone else around here can speak from more experience as to what's going on and why the rat file isn't even loading.. sorry i can't help much more..maybe that service call is in order.. Quote Link to comment Share on other sites More sharing options...
cromagnon Posted May 26, 2005 Author Share Posted May 26, 2005 Thats ok. Thanks anyway. I've sent an email to support so I'll post whatever comes from that. In any case, I 've at least learnt a couple of things. Cheers for your help. Dave Quote Link to comment Share on other sites More sharing options...
cromagnon Posted June 2, 2005 Author Share Posted June 2, 2005 For anyone interested I think I've got an answer for this issue. I received an email from support Because your asset is embedded mantra cannot find the texture map. Mantra and Houdini are two separate applications. When Houdini renders a frame it creates an .ifd which is a description of a single frame. An ifd is similar in concept to renderman's rib. The ifd is then read by mantra and rendered. because mantra cannot get "inside" houdini to access the embedded asset, the embedded texture is missing. The fix: Rather than embedding the asset, write it out to disk. When mantra is rendering an .ifd, and there is an opdef: in one of it's parameter, it will search through the $HOUDINI_PATH for the otl file. Once it finds the otl, the texture can be accessed So, when hip file can't find the otl it embeds it and the above issue occurs. I guess otls that have textures injected need to have the otl available on disk. I'm think I'm going to have to write a script... maybe execute it with an otl Quote Link to comment Share on other sites More sharing options...
sibarrick Posted June 2, 2005 Share Posted June 2, 2005 You might be able to do a pre-render script that dumps the texture map out of the embedded otl and into a temp location on disk. otcontentsave would perhaps be the thing to look at. Quote Link to comment Share on other sites More sharing options...
deecue Posted June 2, 2005 Share Posted June 2, 2005 thanks for the update.. good to know for future reference.. kind of annoying, but makes sense.. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.