Jonathan Mack


About Me



United States

Houdini Skills


Not Specified

Recent Forum Posts

Black Lines on Edges after Normal Baking in Houdini Feb. 20, 2024, 8:48 p.m.

that's pretty much what you expect with a normal map. The geometry is showing parts of the mesh that have normals facing away from camera that would normally be unseen on the high res mesh. There are shading techniques to fix this, such as normal clamping. I would expect an advanced engine such as unreal to have such fixes built into their lighting pipeline.

A problem with ocean rendering in karma Feb. 20, 2024, 6:41 p.m.

What is miplevel and "round-down" mode?

As Gordon says, its to do with the resolution of the miplevels in the texture.
So to create the miplevels, we take the main image and resize it by half, and store it as miplevel 1. Then for level 2 we halve level 1. And so on...

For images that have awkward image sizes, for example 230x180, then the halving will produce 115.5x90. But because we can't have 1/2 a pixel, we need to round the 115.5 either up to 116 or down to 115. GPUs can only handle "round-down" mode, so for XPU if we ever detect an image with "round-up" mode, then we stop loading the mipchain at the problem level.

usually it was more important back before anisotropic filtering was standard on GPUs so textures didn't flicker in the distance

Its still standard, and we will get flickering if we don't have the correct mips/filtering.

How can I solve the problem?

To fix this you can...
- regenerate the EXR using "round-down" mode (I'm not familiar with your tool chain, so can't say how to do this sorry)
- regenerate the EXR with no mips at all (XPU will then automatically create them, and cache the result on disk)
- resize the EXR to a power-of-two size.

The original problem texture is one built into Houdini, a color lookup ramp of some kind. Perhaps the Houdini tools do not abide the round down rule when creating mips for exr?

Karma array attributes? Feb. 20, 2024, 3:58 p.m.

I’m sympathetic when it comes to the limitations of Karma XPU, but it’ll be a big disappointment if Karma CPU + VEX ends up missing big chunks of Mantra functionality … I’m already upset at losing shade().

yes, it's unfortunate. Mantra remains my primary renderer for now, and I don't see another replacing it any time soon due to its unique flexibility.