Dev Blog

Hi, this is the Stranded III development blog (see also Forum Thread, Comment Thread).

Overview (101 Entries)

Entry 57 - Not Seamless At All - September 18, 2016

Not Seamless At All
I imported some of my models in Unity the other day and I encountered a horrifying problem with my UV mapping seams:

> click to enlarge

Do you see the problem? Right! The UV seams are totally visible even though they shouldn't be!
I tried to find a solution with Google and I actually found other people posting about this problem but I didn't find a working fix yet...

I'm using FBX as export format from Blender and I would like to stick to that because other formats cause other problems. The same models work fine (at least regarding the seams) when I export them from Blender as OBJ.

So this is not a texture problem and the models are probably fine. It's clearly about the normals at the seams. Either Blender or Unity screws them up when using FBX. Does anybody know how to solve this without switching to another format or modelling software?

Auto-Generated Icons
The game now automatically renders preview icons for stuff if you don't specifiy your own icon.

> click to enlarge

You can see that some items are using images rendered from the models and others use painted images. My intention is to use painted images for all icons. The rendered icons are actually just a fallback solution.
There are some scaling/positioning problems (note the mushrooms) but except for that it works pretty well already. You will also be able to define a custom rotation etc. for each icon rendering individually.

How does this work internally?
• I have a camera only for preview rendering
• It is disabled all the time and the culling mask only renders my "Preview" layer
• Clear flags are set to a solid black color with 0% opacity (it actually took me some time to realize that you can use 0% opacity for the clear color)
• There's also a light using the same layer so the previews aren't too dark and boring
• I then use RenderTexture.GetTemporary to get a texture and assign it to the camera as render texture
• The item is "created" with Graphics.DrawMesh in front of the preview camera and on the "Preview" layer
• Then it gets rendered manually with Camera.Render
• Afterwards the temporary render texture is copied into a new persistent texture
• Finally the render texture can be released with RenderTexture.ReleaseTemporary

Cool thing: This whole process is decoupled from the normal rendering loop. I can render as many items as I want without rendering a single full game frame with the main camera.

I mentioned a multiplayer test a while ago - this is still work in progress. I didn't forget about it Please don't ask for a date or timeframe though. There's no schedule yet and I can't estimate it.


blog comments powered by Disqus