Autor Beitrag
Martin2005
Hält's aus hier
Beiträge: 13

Windows NT 4, Windows 2000, Windows XP, Windows 2003 Server, Windows NT 4 Server, Kanotix
D6 Prof
BeitragVerfasst: Do 03.03.05 20:25 
Hallo ich habe eine 3D Kugel, leider sieht die aber mit FLAT-Shading ziemlich bescheiden aus.

Mit Gouraud-Shading könnte ich die Kanten zwischen den Vertices glätten. Leider wieß ich nicht, wie man die Normelen für deisen Shader berechnet. Falls sich da jemand auskennt, wäre ich für eine Lösung echt dankbar.

p.s. ich brauche nicht unbedingt code, die Formeln würden mir schon völlig reichen!

Danke
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Do 03.03.05 20:37 
Schon mal das hier versucht...

AXMD
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Do 03.03.05 20:40 
hrhrhr der war gut :twisted:

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Do 03.03.05 21:08 
Du musst nur die Normalen an den Vertices kennen. Die Normalen zu berechnen ist ja bei einer Kugel ziemlich trivial (bei einer Einheitskugel gilt: Position=Normale)...
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Do 03.03.05 21:36 
AXMD hat folgendes geschrieben:
Schon mal das hier versucht...
Du versuchst mich schlecht zu kopieren, oder?!?


@Martin: Womit arbeitest du denn? Ich meine sowohl OpenGL, als auch DirectX unterstützen neben Flat Shading auch Smooth Shading, auch wenn ich nicht weiß, nach welchem Verfahren die dann shaden.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Do 03.03.05 21:41 
Egal ob DirectX oder OpenGL, man muss die Normalen an den Eckpunkten durchgeben :). Ich frag mich bloss, ob er die Sphäre selbst zeichnen will, dafür gibt es ja schon fertige Funktionen.
Martin2005 Threadstarter
Hält's aus hier
Beiträge: 13

Windows NT 4, Windows 2000, Windows XP, Windows 2003 Server, Windows NT 4 Server, Kanotix
D6 Prof
BeitragVerfasst: Sa 05.03.05 11:30 
OK!

So weit war ich auch schon.
Bei einer Kugel funtioniert das auch ganz wunderschön, aber bei einem Ring ergeben sich dabei völlig falsche
Lichtwerte.

Trotzdem Danke!
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: So 06.03.05 11:15 
Martin2005 hat folgendes geschrieben:
So weit war ich auch schon. Bei einer Kugel funtioniert das auch ganz wunderschön (...)

Gut, die Frage war ja, wie es bei einer Kugel aussieht ;)
Bei einem beliebigen Objekt kannst du die Normale an einer Ecke annähern durch den Mittelwert der Normalen aller anliegender Dreiecke.
Für einen Ring/Torus gibt es eine fertige Formel, wie die lautet, weiss ich jetzt grad nicht. Wenn du aber die Gleichung des Torus in impliziter Form gegeben hast "F(x,y,z) = 0" dann ist der Gradient davon gerade die Normale, also der Vektor [Fx,Fy,Fz], wobei Fx bedeutet: F abgeleitet nach x, Fy: abgeleitet nach y, usw..
P_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 75

Win XP
Delphi 7 / 8 Enterprise
BeitragVerfasst: Mo 07.03.05 10:38 
Ich weiß nicht, an was für einem Projekt du sitzt. Aber vielleicht hilft dir das hier weiter: www.geocities.com/pe...one_uk/engine3d.html
Es handelt sich um eine superkleine 3D-Engine zur Darstellung von Primitiven. Kommt ohne OpenGL oder DirectX aus. Gouraud-Shading inklusive. Das ganze ist open source, also bringt dich ein Blick auf den Code vielleicht weiter.

Gruß, P_G