How to Achieve Smooth Tangent Space Normals
To remedy the faceted appearance of a model due to per-face calculations of tangent, binormal, and normal vectors, it is essential to consider the model's pre-supplied normals.
Per-Vertex Normal Averaging
The first approach involves calculating the per-face normal and distributing it among the vertexes that form the face. Each vertex maintains an accumulator vector that initially holds zero values, and the face normal's X, Y, and Z components are added to the accumulator for each involved vertex. Additionally, a count of the faces sharing the vertex is incremented.
Vertex Normalization
After all faces have been processed, each vertex's accumulator vector is divided by the count, resulting in an average normal. This average normal represents the smoothed normal for that vertex.
Tangent and Binormal Calculations
Once the vertex normals are calculated, the tangent and binormal vectors can be computed using the original approach mentioned in the question.
Smooth Outputs
With this approach, the model's normals are smooth across its surface, eliminating the faceted appearance. This method is particularly effective for models with continuous geometry, such as those resembling organic or natural forms.
By leveraging the pre-defined model normals and averaging them across vertexes, you can achieve smooth tangent space normals, resulting in a realistic and continuous visual representation of your model.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3