Eine andere Option, die ich ausprobiert habe Um einen separaten Zeichnenanruf nur für normal zu haben, aber da die Scheitelpunkte auf der CPU -Seite immer noch nur ein Flugzeug sind, bekomme ich immer wieder Linien, die durch Scheitelpunkte/Ebenen gelangen, nicht genau das, was ich will.
Gibt es eine Möglichkeit, den Normalen zu zeichnen, ohne einen separaten Ziehaufruf zu haben?
Code: https://github.com/SHREYAS9699/FBM-OPEN ... e]Fragment shader:[/code]
Code: Select all
void main()
{
// ambient
float ambientStrength = 0.1;
vec3 ambient = ambientStrength * lightColor;
// diffuse
vec3 norm = normalize(Normal);
vec3 lightDir = normalize(lightPos - FragPos);
float diff = max(dot(norm, lightDir), 0.0);
vec3 diffuse = diff * lightColor;
// specular
float specularStrength = 0.3;
vec3 viewDir = normalize(viewPos - FragPos);
vec3 reflectDir = reflect(-lightDir, norm);
float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32.0f);
vec3 specular = specularStrength * spec * lightColor;
vec3 result = (ambient + diffuse + specular) * objectColor;
if(showNormals)
{
// Render normals as a yellow color
vec3 normalColor = vec3(1.0, 1.0, 0.0); // Yellow color
vec3 normalVisualization = normalColor * abs(norm);
result = mix(result, normalVisualization, 0.5);
}
FragColor = vec4(result, 1.0);
}
https://i.sstatic.net/ddkqdbx4.png
Mit normalem Wert:
https://i.static.net/qsw9n16n.png
Erwartete so etwas für alle Scheitelpunkte.