bevy icon indicating copy to clipboard operation
bevy copied to clipboard

A box mesh made using shape::Box::From is missing tangent vectors, which prevents applying normal maps

Open mousetail opened this issue 4 years ago • 2 comments

What problem does this solve or what need does it fill?

Normal maps are a pretty standard cheap way to make meshes look a bit better. Often when prototyping you use basic shapes, and it would be quite nice to test real materials on these shapes.

Error:

thread 'Compute Task Pool (0)' panicked at 'Attribute Vertex_Tangent is required by shader, but not supplied by mesh. Either remove the attribute from the shader or supply the attribute (Vertex_Tangent) to the mesh.', C:\Users\_\.cargo\registry\src\github.com-1ecc6299db9ec823\bevy_render-0.5.0\src\pipeline\pipeline_compiler.rs:231:17

I checked the code and the issue seems to still exist in the current version of main.

What solution would you like?

The From<Box> for Mesh function should generate tangents in addition to normals and UV coordinates.

What alternative(s) have you considered?

You could write your own box generator, and I will but I think this is a pretty basic feature.

Additional context

I could probably fix this myself and submit a MR if you think this is a worthwhile feature. No guarantees.

mousetail avatar Nov 13 '21 09:11 mousetail

Good call! This would be a welcome addition.

cart avatar Nov 13 '21 21:11 cart

I think this should be labelled as C-Enhancement rather than C-bug as it's an addition / new thing, rather than something working incorrectly

mcobzarenco avatar Mar 02 '22 20:03 mcobzarenco

From #6203, it looks like this is not planned, as it incurs additional costs that users may not necessarily want to pay if they are not using some rendering features.

IMO this can't be closed. It's still a major footgun though. bevy should show a warning with generated meshes similarly to #11854. Currently it only works with glTF scenes.

nicopap avatar Feb 25 '24 10:02 nicopap