Jump to content

Missing Textures In Otls


Recommended Posts

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...)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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..

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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..

Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...