More Progress on StyleBlit Implementation

This week I spent some time figuring out where I had gone wrong with my implementation, and what I could do to fix it. Here are some progress images that I captured throughout the week, with captions of what was going wrong in each:

I think that this week, I’m going to try implementing the brute force algorithm, as well as trying to fine tune some of what is happening with the normals and the jitter table lookup. I will need to increase the number of seed point layers as well, as this is still only working with one.

Another question that I have is about getting the normal data. Looking at the StyleBlit paper’s sample data & normal maps, it looks like either multiple guiding channels are being used, or like the normals are being taken with respect to the camera position, as the normal maps seem to shift in hue as the model rotates. This seems odd to me, so I think I need to do some more research on generating the correct maps, and getting the correct data.

Something that I tried (with little success), was creating a shared array of normal data for the rabbit while rendering. This would be a 2D 100×100 array of half3 normals. HLSL seems to support this kind of memory sharing & thread-sync behaviour, but only in compute shaders – not the vertex shader, where I would need the data. Perhaps this is something that may be useful to look into later, but I think it might be a bit of a rabbit hole (pun intended).

Published by aqwilson

4th-year computer science student. Coffee. Art. Coding. Video Games.

Leave a comment