DGL https://delphigl.com/forum/ |
|
Normalenglättung https://delphigl.com/forum/viewtopic.php?f=20&t=9786 |
Seite 1 von 1 |
Autor: | Razoron [ Mi Mär 09, 2011 18:09 ] |
Betreff des Beitrags: | Normalenglättung |
Hi, es gibt ein Problem mit der Glättung der Normalen. Ich hab mir jetzt einen kleinen Shader geschrieben: Der Vertex Shader: Code: varying vec4 vert_pos; varying vec3 vert_nor; void main() { vert_pos = ftransform(); vert_nor = normalize(gl_NormalMatrix * gl_Normal); gl_Position = vert_pos; } Der Fragment Shader: Code: varying vec3 vert_nor; varying vec4 vert_pos; const vec3 light_pos = vec3(1.0, 1.0, 1.0); void main() { float brightness = max(dot(vert_nor, light_pos) / (length(vert_nor) * length(light_pos)), 0.0); gl_FragColor = vec4(brightness, brightness, brightness, 1.0); } Ich habe eine mit Blender generierte Kugel mit Normalen als OBJ eingelesen. Das ist die Antwort: Dateianhang: wieesist.png [ 10.77 KiB | 7423-mal betrachtet ] Warum werden die Normalen nicht für jedes Face in dem Fragment Shader interpoliert? Liebe Grüße, Raz |
Autor: | Coolcat [ Mi Mär 09, 2011 18:15 ] |
Betreff des Beitrags: | Re: Normalenglättung |
Zitat: Warum werden die Normalen nicht für jedes Face in dem Fragment Shader interpoliert? Die Normalen werden interpoliert. Allerdings bringt das nur etwas wenn die Normalen auch unterschiedlich sind. Du scheinst für alle vier Vertices eines Quads jeweils die gleiche Normale zu setzen. |
Autor: | Razoron [ Mi Mär 09, 2011 18:18 ] |
Betreff des Beitrags: | Re: Normalenglättung |
Also werden sie von Blender falsch gesetzt? |
Autor: | Coolcat [ Mi Mär 09, 2011 18:25 ] |
Betreff des Beitrags: | Re: Normalenglättung |
Gut möglich. Tipp: Falls du zufällig sowieso nur einfache Kugelen rendern möchtest: Nimm doch einfach im Shader die normalisierte Vertexposition als Normale. Idealerweise hat dann natürlich die Kugel bereits den Radius 1 und wird erst später auf die gewünschte Größe skaliert. |
Autor: | Razoron [ Mi Mär 09, 2011 18:26 ] |
Betreff des Beitrags: | Re: Normalenglättung |
Ich sehs gerade. Stimmt. Also muss ich die mir wohl selber generieren. |
Autor: | Lord Horazont [ Mi Mär 09, 2011 21:13 ] |
Betreff des Beitrags: | Re: Normalenglättung |
Hast du mal versucht in Blender das Mesh auszuwählen und dann F9 (Editing) zu drücken, unter Links and Materials gibts nen schönen Button Set Smooth. greetings |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |