Rendering fixes (January 2016)

This is not tone shifting, this is per-vertex specular AFAICS.

Basically on low quality we compute specular per-vertex using the vertex normal and the vector between the camera position and the vertex position and interpolate the result. On high quality we interpolate the normal/position and then compute the precise view vector & specular.

In this case specular values are different between different parts on low quality so you get “tone shifting” (which is not tone shifting, but just a shading artefact - hey, it’s low quality after all!)

And yeah, z-fighting still happens in high-quality, you just can’t see it since the pixels from different parts have the exact same color.

3 Likes

Aw, man, it had me fooled. Have any ideas on how to get rid of the artifacts on curved roads?

Ideas I’ve used so far:

  1. CSG - but on mobile, sections often becomes invisible because of slow load times (and of course some csg errors)
  2. Deviating each piece’s y position value between 0.001 to 0.1 until they look good from 30 studs away online (very time consuming and ruins neat + clean placement)
  3. Inserting a mesh in each piece and changing its y scale, similar to option 2
  4. Just hope most people use high graphics for the updated interpolation we see now. (May just use this! It’s still great.)
1 Like

Do you mean artifacts due to z-fighting? I had an idea some time ago that we never tested to randomly apply a z-offset to all parts in hopes that it’d fix z-fighting on intersecting parts…

In terms of workarounds, CSG seems like the cleanest option.

1 Like

CSG unions can be invisible for a while if your connection isn’t great though. Trying to get a screenshot of it on my phone. Edit: Couldn’t capture the invisible ones. The map filled with unions does lag my phone to super slow-mo physics though.

I think the mesh scale trick might be better than unions, but I think I’ll stick with option 4 now that high graphics + no outlines + smoothplastic = no flicker.

Edit: Don’t want to spam with new replies: Just comparing SmoothPlastic (left side) vs Plastic (right side) and you can see SmoothPlastic being seamless with this update, while Plastic (along with other materials) have seams/flickers still.

1 Like

Off topic but - at RDCW I heard that CSG was getting a complete recode. Is there an ETA on that or is it planned anytime soon?

Why not use triangles?

1 Like

I always get weird glossy marks on unions, similar to how this looks. :confused:

1 Like

That is an ongoing Studio project. No ETA.

1 Like

Ah. Well at least you guys haven’t quit, so there’s hope :smiley:

How are you going about it this time?

If I had to program CSG, I’d probably approach it with convex meshes made out of planes, then just compute the minimal-triangle model from the given convex meshes each time I perform an operation on them. There’s probably a lot I’m not thinking about.

https://i.gyazo.com/318868d1dc389b67db1369305a8f8b11.mp4

i have no idea of what is going on in there
this is basically a CSG piece with decals all around it, 0 transparency both on the decal and on the helmet model
as you can see something is happening with the light at the top, also here is a picture of how the shadows go trough the helmet, if you lower the graphics where shadows dont show anymore this doesnt happend.
10 quality
3Xjst7u.png
9 quality
XW1o7KL.png
also one last thing, decals detach from the brick that is moving if its tweening and the server is slow.
(the stripe on my helmet stays still when the helmet moves sometimes, then it just teleports on the helmet after its done tweening)

For the light thing It looks like it’s just jumping between voxels when your characters idle animation bounces.

Is it parented to the character?

yeah, its a hat

The fog animation fix has been re-fixed (for I think the third time now!) and now it seems to be working. Please post here if you see any issues but basically updating fog from script should be immediate now.

5 Likes

Just in time for some weather effects we wanted to do in Hooked!

@Causticity

Wrote it down to start working on it :sunglasses:

This is probably really late to the party but was directed here on the discord.

I’m using a gual-GPU setup with integrated GPU and dedicated GPU, but I’ve realised that my studio is using my integrated card rather than my dedicated one, and unsure how to fix. ^^

You should be able to disable the integrated GPU on your BIOS

This may or may not be correct. The bug I have faced is Roblox is using my dedicated GPU but reports using my integrated GPU. I would consider getting a tool like MSI Afterburner to check for a drastic change in GPU usage to double check if you haven’t already.