-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backface culling winding order reversed #101
Comments
wow. cool we are cleaning up on this one, and thanks for the analysis of this relict. What are the drawbacks of your approach -- Clearly confusion is one. Maybe we could accompany it with a consolidated page on conventions (and refer to it in the comments). This could then be extended towards: right-handed left handed, row-column major matrices and memory layout, uv space, z-up, depth ranges, automatic depth transformations, image layout - those come to my mind quickly. |
Drawback is that you have to know that you can just replace |
Changing the name to I also don't think that many projects made use of |
well, with this strategy when you move from say 5.3 to 5.5 you won't recognize the change.
Most likely, but if so, it is even harder to find. Maybe what lui proposed, but just keep the warning longer? |
One more thing: I assume if we try to keep the current behavior, we would change the default value of Note: I didn't find |
It's not just I don't think it's worth the hassle to risk silent breaking changes just to match the naming convention. We could rename the rasterizer state, keep the "broken" |
Btw in most regards we're using OpenGL conventions (texcoords, z-range, etc) so it would be natural (and easy in OpenGL) to stick with these conventions. Also Maybe just rename it to |
Another alternative name is aardvark.rendering/src/Aardvark.Rendering/Pipeline/PipelineState.fs Lines 63 to 70 in e2f0891
|
I'll write some unit tests for this. The way we translate the two states in Vulkan is not completely consistent with the GL backend. Currently, |
Should be fixed with 640a7e2:
|
Currently, backface culling does not work as intended as the winding order is reversed. For example, applying
Sg.cullMode' CullMode.Back
andSg.frontFace' WindingOrder.Clockwise
will lead to triangles with CW winding order being culled. This behavior is consistent in both backends:Changing the behavior is not an option, so I suggest we simply rename the front face state to back face (e.g.
Sg.backFace
instead ofSg.frontFace
).The text was updated successfully, but these errors were encountered: