Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 15:43

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Probleme mit Open Gilde Lichter
BeitragVerfasst: Mi Apr 05, 2006 14:45 
Offline
DGL Member

Registriert: Di Feb 14, 2006 20:08
Beiträge: 7
Wohnort: NSU
:x Egal was ich auch mache, bekomme ich keine Echten Lichter in Open Gilde hin (Damit sind NICHT die Textur-Lichter gemeint), und das Tutorial hilft mir da auch nicht weiter !!!

In DirectX9 und VB.Net geht das ganz leicht:

Code:
  1. ' ------------------------------------------------------------------
  2.  
  3.  
  4. ' ********************
  5. ' *** Licht-Engine ***
  6. ' ********************
  7.  
  8.  
  9. ' * Allgemeines Licht festlegen *
  10. Public Sub SetzeAllgemeinesLicht(ByVal AmbientFarbe As System.Drawing.Color)
  11.  
  12.         ' Allgemeines Licht festlegen
  13.         MYDEVICE.RenderState.Ambient = AmbientFarbe
  14.  
  15. End Sub
  16.  
  17.  
  18. ' * Erstelle Duration Licht*
  19. Public Sub ErstelleDurationLicht(ByVal Nummer As Byte, ByVal XR As Short, ByVal YR As Single, ByVal Farbe As System.Drawing.Color)
  20.  
  21. ' Übergabe
  22. Dim DirectionalLightDirectionX As Double
  23. Dim DirectionalLightDirectionY As Single
  24. Dim DirectionalLightDirectionZ As Double
  25.  
  26. ' Var & Rotate
  27. Dim BlickX As Double = 100 * Math.Cos(Geometry.DegreeToRadian(XR))
  28. Dim BlickZ As Double = 100 * Math.Sin(Geometry.DegreeToRadian(XR))
  29.  
  30. ' Direction
  31. DirectionalLightDirectionX = BlickX * -1
  32. DirectionalLightDirectionY = YR
  33. DirectionalLightDirectionZ = BlickZ
  34.  
  35. ' Erstellen Licht
  36. LightBuffer(Nummer) = New Light
  37.  
  38. ' Übergebe Licht
  39. LightBuffer(Nummer).Type = LightType.Directional
  40. LightBuffer(Nummer).Ambient = Farbe
  41. LightBuffer(Nummer).Diffuse = Farbe
  42. LightBuffer(Nummer).Specular = Farbe
  43. LightBuffer(Nummer).XDirection = DirectionalLightDirectionX
  44. LightBuffer(Nummer).YDirection = DirectionalLightDirectionY
  45. LightBuffer(Nummer).ZDirection = DirectionalLightDirectionZ
  46.  
  47. End Sub
  48.  
  49.  
  50. ' * Erstelle Point Licht*
  51. Public Sub ErstellePointLicht(ByVal Nummer As Byte, ByVal X As Single, ByVal Y As Single, ByVal Z As Single, ByVal Farbe As System.Drawing.Color, ByVal Weite As Single)
  52.  
  53. ' Erstellen Licht
  54. LightBuffer(Nummer) = New Light
  55.  
  56. ' Übergebe Licht
  57. LightBuffer(Nummer).Type = LightType.Point
  58. LightBuffer(Nummer).Ambient = Farbe
  59. LightBuffer(Nummer).Diffuse = Farbe
  60. LightBuffer(Nummer).Specular = Farbe
  61. LightBuffer(Nummer).Attenuation0 = 0
  62. LightBuffer(Nummer).Attenuation1 = 1
  63. LightBuffer(Nummer).Attenuation2 = 0
  64. LightBuffer(Nummer).Range = Weite
  65. LightBuffer(Nummer).XPosition = X
  66. LightBuffer(Nummer).YPosition = Y
  67. LightBuffer(Nummer).ZPosition = Z
  68.  
  69. End Sub
  70.  
  71.  
  72. ' * Erstelle Spot Licht*
  73. Public Sub ErstelleSpotLicht(ByVal Nummer As Byte, ByVal X As Single, ByVal Y As Single, ByVal Z As Single, ByVal XR As Short, ByVal YR As Single, ByVal KA As Integer, ByVal KI As Integer, ByVal Farbe As System.Drawing.Color, ByVal Weite As Single)
  74.  
  75. ' Übergabe
  76. Dim DirectionalLightDirectionX As Double
  77. Dim DirectionalLightDirectionY As Single
  78. Dim DirectionalLightDirectionZ As Double
  79.  
  80. ' Var & Rotate
  81. Dim BlickX As Double = 100 * Math.Cos(Geometry.DegreeToRadian(XR))
  82. Dim BlickZ As Double = 100 * Math.Sin(Geometry.DegreeToRadian(XR))
  83.  
  84. ' Direction
  85. DirectionalLightDirectionX = BlickX * -1
  86. DirectionalLightDirectionY = YR
  87. DirectionalLightDirectionZ = BlickZ
  88.  
  89. ' Erstellen Licht
  90. LightBuffer(Nummer) = New Light
  91.  
  92. ' Übergebe Licht
  93. LightBuffer(Nummer).Type = LightType.Spot
  94. LightBuffer(Nummer).Ambient = Farbe
  95. LightBuffer(Nummer).Diffuse = Farbe
  96. LightBuffer(Nummer).Specular = Farbe
  97. LightBuffer(Nummer).Attenuation0 = 0
  98. LightBuffer(Nummer).Attenuation1 = 2
  99. LightBuffer(Nummer).Attenuation2 = 0
  100. LightBuffer(Nummer).Range = Weite
  101. LightBuffer(Nummer).XPosition = X
  102. LightBuffer(Nummer).YPosition = Y
  103. LightBuffer(Nummer).ZPosition = Z
  104. LightBuffer(Nummer).XDirection = DirectionalLightDirectionX
  105. LightBuffer(Nummer).YDirection = DirectionalLightDirectionY
  106. LightBuffer(Nummer).ZDirection = DirectionalLightDirectionZ
  107. LightBuffer(Nummer).OuterConeAngle = KA / 57.296
  108. LightBuffer(Nummer).InnerConeAngle = KI / 57.296
  109. LightBuffer(Nummer).Falloff = 1
  110.  
  111. End Sub
  112.  
  113.  
  114. ' *  Setze Licht *
  115. Public Sub SetzeLicht(ByVal LichtNummer As Integer, ByVal LichtBuffer As Byte)
  116.  
  117.         ' Licht setzen
  118.         MYDEVICE.Lights(LichtNummer).Type() = LightBuffer(LichtBuffer).Type
  119.         MYDEVICE.Lights(LichtNummer).Ambient = LightBuffer(LichtBuffer).Ambient
  120.         MYDEVICE.Lights(LichtNummer).Diffuse = LightBuffer(LichtBuffer).Diffuse
  121.         MYDEVICE.Lights(LichtNummer).Specular = LightBuffer(LichtBuffer).Specular
  122.         MYDEVICE.Lights(LichtNummer).Attenuation0 = LightBuffer(LichtBuffer).Attenuation0
  123.         MYDEVICE.Lights(LichtNummer).Attenuation1 = LightBuffer(LichtBuffer).Attenuation1
  124.         MYDEVICE.Lights(LichtNummer).Attenuation2 = LightBuffer(LichtBuffer).Attenuation2
  125.         MYDEVICE.Lights(LichtNummer).XPosition = LightBuffer(LichtBuffer).XPosition
  126.         MYDEVICE.Lights(LichtNummer).YPosition = LightBuffer(LichtBuffer).YPosition
  127.         MYDEVICE.Lights(LichtNummer).ZPosition = LightBuffer(LichtBuffer).ZPosition
  128.         MYDEVICE.Lights(LichtNummer).XDirection = LightBuffer(LichtBuffer).XDirection
  129.         MYDEVICE.Lights(LichtNummer).YDirection = LightBuffer(LichtBuffer).YDirection
  130.         MYDEVICE.Lights(LichtNummer).ZDirection = LightBuffer(LichtBuffer).ZDirection
  131.         MYDEVICE.Lights(LichtNummer).Range = LightBuffer(LichtBuffer).Range
  132.         MYDEVICE.Lights(LichtNummer).OuterConeAngle = LightBuffer(LichtBuffer).OuterConeAngle()
  133.         MYDEVICE.Lights(LichtNummer).InnerConeAngle = LightBuffer(LichtBuffer).InnerConeAngle()
  134.         MYDEVICE.Lights(LichtNummer).Falloff = LightBuffer(LichtBuffer).Falloff()
  135.  
  136.         ' Für Duration-Licht ?!?
  137.         MYDEVICE.Lights(LichtNummer).Commit()
  138.         ' Licht ein oder ausschalten
  139.         MYDEVICE.Lights(LichtNummer).Enabled = True
  140.  
  141. End Sub
  142.  
  143.  
  144. ' * Freigabe Licht *
  145. Public Sub FreigabeLicht(ByVal Nummer As Byte)
  146.  
  147.         ' Freigeben Licht
  148.         LightBuffer(Nummer) = Nothing
  149.  
  150. End Sub
  151.  
  152.  
  153. ' * Setze LichtSchalter *
  154. Public Sub SetzeLichtSchalter(ByVal LichtNummer As Integer, ByVal Schalter As Boolean)
  155.  
  156.         ' Licht ein oder ausschalten
  157.         MYDEVICE.Lights(LichtNummer).Enabled = Schalter
  158.  
  159. End Sub
  160.  
  161.  
  162. ' * Setze Specular-Schalter *
  163. Public Sub SetzeSpecularSchalter(ByVal Schalter As Boolean)
  164.  
  165.         ' Alpha-Blend-Modus ein bzw. ausschalten
  166.         MYDEVICE.RenderState.SpecularEnable = Schalter
  167.  
  168. End Sub
  169.  
  170.  
  171. ' ------------------------------------------------------------------


WIE MUSS UND KANN ICH DIESE FUNKTIONEN SCHREIBEN IN OPEN GILDE UND DELPHI ???

BITTE DRINGEND UM ANTWORT, DANKE !!!

_________________
_____________________

pressi@kwons.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 05, 2006 15:38 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Wenn du uns hier Directx und VB-Code postest, wird das absolut nichts nützen.
Sag doch stattdessen lieber, was denn nicht geht... :wink:

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 05, 2006 15:48 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Habe gerade mal deinen Code in CodeTags gepackt. Auch wenn ihn sowieso kaum einer versteht ist es besser, wenn er sich vom deinem Posting abhebt.

Als zweites. Ist dir schon mal aufgefallen, dass 3 von deinen 4 Beiträgen mit einem Hasssmiley (Einer mit einem Fragezeichen) anfangen? Eine Bitte von mir. Es wäre nett, wenn du das ein wenig ändern könntest. Zu mindest für zukünftige Beiträge. So etwas dämpft, zu mindest bei mir, die Motivation darauf etwas zu scheiben. In etwa auch so die komplett großgeschriebenen letzten Sätze. Dass es dir wichtig ist dürfte klar sein alleine schon dadurch, dass du hier gepostet hast und wir ausnahmslos immer darauf erpicht sind diese so schnell wie möglich zu lösen. Mich hat OpenGL auch schon in den Wahnsinn getrieben aber es wäre nur nett uns gegenüber. Versteh das bitte nicht falsch. Nur eine kleine Bitte von mir. Danke.

Jetzt zu deinem Problem. Wenn man halbwegs weiß wie OpenGL arbeitet und die entsprechenden Befehle kennt ist OpenGL mindest genau so leicht wie DX. Wenn nicht sogar noch leichter. In unserem Lichttutorial haben wir sehr anschaulichen Code. Mit dem sollte es ein leichtes sein dein Licht zu übernehmen.

Die Befehle zum Setzen der Farben würde dann wie folgt aussehen
Code:
  1.   MYDEVICE.Lights(LichtNummer).Ambient = LightBuffer(LichtBuffer).Ambient
  2.   MYDEVICE.Lights(LichtNummer).Diffuse = LightBuffer(LichtBuffer).Diffuse

entspricht
Code:
  1. const
  2.     light0_ambient  : Array[0..3] of GlFloat = (0.8, 0.0, 0.0, 1.0);
  3.     light0_diffuse  : Array[0..3] of GlFloat = (0.8, 0.0, 0.0, 1.0);
  4. begin
  5.   glLightfv(GL_LIGHT0, GL_AMBIENT,  @light0_ambient[0]);
  6.   glLightfv(GL_LIGHT0, GL_DIFFUSE,  @light0_diffuse[0]);
  7. end;

Farben werden in diesem Falle array of Float (Single) übergeben. Das ist etwas was du Berücksichtigen musst. Die Position und Direction solltest du selber hinbekommen. Am Besten wird wohl auch sein, wenn du dir das Tutorial noch mal langsam und in ruhe durchliest. Alleine von den Namen her sind die Rückschlüsse vollkommen klar. Und mit dem Code der im Tut vorhanden ist solltest du mal eben überhaupt keine Probleme mehr haben.

Das Einzige was etwas komplizierter werden dürfte wären wohl die Spezialparameter von DX wie InnerConeAngle, OuterConeAngle. Diese werden sich wohl nicht 1:1 übernehmen lassen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 05, 2006 15:50 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Für jedes Vertice was du OpenGL übergibst musst du auch eine Normale mit liefern.
Um Lichter zu nutzen ist es erstmal abhängig wieviele deine Grafikkarte unterstützt.

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);

So aktivierst du das Lightning und schaltest die Lichtquelle 0 an.
Nun musst du die Lichtquelle mit glLightfv(GL_LIGHT0, GL_POSITION, @light_position[0]); positionieren und auch drauf achten, dass die Distance zwischen den zu beleuchtenden Objekten und deiner Lichtquelle nicht zu groß sind. Sonnst werden diese Schwarz dargestellt.
Beim setzen der position solltest du drauf achten das die Modelview Matrix mit default werten ausgestattet ist.
Sprich einfach vor der ersten veränderung durch glrotate,gltranslate,glscale die position setzen.
Wenn dies nicht reicht solltest du vieleicht dein Problem genauer schildern.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Dazu
BeitragVerfasst: Mi Apr 05, 2006 20:42 
Offline
DGL Member

Registriert: Di Feb 14, 2006 20:08
Beiträge: 7
Wohnort: NSU
:?: Das ist nicht nur das einzige Problem, mit der Mathe kann ich auch nicht's anfangen !!! (Bin halt kein Mathe-Genie) Mir würden eigentlich auch eine Unit't mit vorgefertigten Funktionen zu Open Gilde auch reichen, um folgendes zu erledingen:

- Polygone um die gewünschte Position in der Mitte zu drehen in nach Wahlweise um die X , Y , Z-Achse.

- Auf einfache weise echte Lichter zu setzen für Allgemeines Licht , Direction-Licht, Point-Licht, und Spot-Licht.

- Usw...

Schade, dachte Open Gilde ist Leichter, bzw. kann damit mehr machen, leider sieht es im Moment nicht danach aus !!!
Probiere noch weiter, mal sehen !!!

ZU WAS NICHT FUNKTIONIERT:

Eigentlich alles Funktioniert nicht, weder: Das setzen der Position, noch die Ausrichtung der Lichtquelle, die Abschwächung, die Reichweite des Licht, usw ...

Volgendes ist aktiviert:

// Z-Buffer aktivieren
glEnable(GL_DEPTH_TEST);
// S-Buffer aktivieren
glEnable(GL_STENCIL_TEST);
// Alpha-Test aktivieren
glEnable(GL_ALPHA_TEST );
// Normales aktivieren
glEnable (GL_NORMALIZE);
glEnable (GL_RESCALE_NORMAL);
glEnable (GL_LIGHTING); // Lichtberechnung
glEnable (GL_AUTO_NORMAL); // Lichtnormales Auto
glEnable (GL_LIGHT0);
// Licht-Modell Schatten
glShadeModel(GL_SMOOTH);
// Lichters aktivieren
glEnable (GL_LIGHTING);
// Materials aktivieren
glEnable (GL_COLOR_MATERIAL);
// Blending aktivieren
glEnable(GL_BLEND);
// Dithering aktivieren
glEnable (GL_DITHER);
// Textur aktivieren
glEnable(GL_TEXTURE_2D);
// Backface Culling deaktivieren
glDisable(GL_CULL_FACE);
// Polygone anders rum zeichnen
glFrontFace(GL_CW);
// Viewport festlegen
glViewport(0, 0, TheBreite, TheHöhe);


// Setzen der Perspektivprojektion und der Augpunkttransformation
glMatrixMode(GL_PROJECTION);// gültiger Matrixstapel --> Projektionsmatrix
glLoadIdentity; // Einheitsmatrix laden
gluPerspective(45.0, TheBreite/TheHöhe, NearClipping, FarClipping); // Perspektieve festlegen

// Matrix wählen View
glMatrixMode(GL_MODELVIEW);
// Init Matrix
glLoadIdentity;
// Transform
glTranslatef(0, 0, 0);


Material ist festgelegt, die normales sind auch festgelegt, wobei mir immer auch noch unklar ist in welche Richtung die Z-Achse ausgerichtet werden Mus nach Minus oder nach Plus wenn ich von Dieser Translation glTranslatef(0, 0, 0) drauf sehe , wenn ich auf ein davor stehendes Viereck mit Textur (Schild) auf ein aufrecht stehendes Viereck !?! Geschweige den, wann GL_FRONT_AND_BACK, ... GL_FRONT ... GL_BACK ... benötigt wird, und GL_LIGHT_MODEL_TWO_SIDE, GL_LIGHT_MODEL_ONE_SIDE, usw ... benötigt wird. Ebenso ist mir auch nicht klar wie die Lichtstärke bzw. Reichweite z.B. 2 festgelegt wird. Mir ist auch nicht klar warum die Lichtquelle die Position und die Ausrichtung nicht animt, usw ... ???

_________________
_____________________

pressi@kwons.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 06, 2006 10:38 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Gnade!

Dein Ansatz ist denk ich total daneben. Wenn du tolle Grafikprogramme schreiben willst, aber keine Grafik-Api lernen möchtest, dann geht das zwangläufig gegen den Baum. Das ist ungefähr so als wollte ein KFZ-Mechaniker ein Eigenes Auto aus ersatzteilen bauen, ohne hinzugucken. Das kann nur mist werden.

Hast du eigentlich mal in betracht gezogen, dass hier viele sind die "Open Gilde" nicht kennen. Ich hab davon noch nie gehört.

Aber OK...scheint ne Engine zu sein, die auf OGL baut. Engines sind toll. Sie sparen nämlich viel Zeit. Jedenfalls dem, der sowas auch selber schreiben könnte. Weil er die Teile nur noch aneinander bauen muss. Jemand der aber keine Ahnung vom Zusammenbauen hat, wird das auch nicht helfen.

Wenn du wirklich was zustande bringen möchtest, dann fang an die Tutorials zu lesen. Du wirst ziemlich schnell merken, dass das was du bisher zu glauben scheinst, und das wie es sein muss noch gehörig differieren. glTranslate(0,0,0); wirst du dann sicherlich nichtmehr versuchen. ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 06, 2006 20:02 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Das denke ich aber auch...
Open Glide ist keine Engine, sondern vermutlich eine Fehlinterpretation. Als es damals mit der 3D-Programmierung losging war die Pflicht-API für alle 3dfx-Karten Glide. Viele Leute übersetzen das GL bei OpenGL irrtümlich mit Glide, statt mit Graphic Libary.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Noch dazu
BeitragVerfasst: So Apr 09, 2006 17:47 
Offline
DGL Member

Registriert: Di Feb 14, 2006 20:08
Beiträge: 7
Wohnort: NSU
:!: Also gut, dann muß ich die Open Gilde (OpenGL) eher wie eine Windows-API sehen, so eine Art Low Level-Schnitt-Stelle.

Der Unterschied zwischen DX9 und GL, ist halt doch größer als Gedacht, mit anderen Worten: "Ich muß da wohl alles von Grund auf neu lernen über die Jahre hinweg !!!"HMM, ob sich das wirklich lohnt, oder bleibe ich doch lieber bei DX9 ???

_________________
_____________________

pressi@kwons.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 09, 2006 18:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Versteh mich bitte nicht falsch aber ich habe das Gefühl, dass du uns entweder nicht verstehst oder verstehen möchtest. Es gibt kein Open Gilde. Vielleicht hilft dir ja der Google Link ein wenig. ;-)

Also ich kenne DX nut in der 7er Version. An einigen Stellen ist es sehr umständlich und unnötig komplizier. Bzw zu viel Schreibarbeit. DX bietet an einigen Stellen schon die ein oder andere Kapsellung aber auch das ist Low Level. Es es halt lediglich anders als OpenGL. Beide Schnittstellen haben Vor und Nachteile. Und wir alle hier haben die Vorteile von OpenGL erkannt. Und ich möchte jetzt nicht schon wieder ein OpenGL vs DX Thema haben. Wenn es doch passiert werde ich es ohne Kommentar schließen. Wenn es dich dennoch interessiert, dann suche mal bitte im Forum. Solltest du komkrete Fragen haben, dann kannst du diese gerne stellen. Aber bitte nicht zu allgemein. Das hatten wir schon zu lange und DX steht hier auf ziemlich verlohrenem Posten.

Im Endeffekt können wir dir diese Entscheidung aber nicht abnehmen. Und es ist eine Frage des Geschmacks. Nur wenn man mit etwas gar nicht um kann, damm sollte man sich mal sehr stark überlegen ob man es machen will. Und wenn man für sich entschieden hat etwas zu machen, dann sollte man auch alle seine Energie rein stecken.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 09, 2006 20:07 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Zitat:
Der Unterschied zwischen DX9 und GL, ist halt doch größer als Gedacht, mit anderen Worten: "Ich muß da wohl alles von Grund auf neu lernen über die Jahre hinweg !

Defacto ist der Unterschied gar nicht so groß. Ich selbst komme ursprünglich ja ebenfalls von D3D-Lager her und habe damals nur wenige Wochen gebraucht um mich in die notwendigen Grundlagen einzuarbeiten. Ist erst einmal das Init überlebt, erkannt, dass die Z-Achse anderes verläuft und wie man den Framebuffer befüllt, dann ist der Recht gar nicht mehr so unterschiedlich. Immerhin funktionieren alle grundlegenden Techniken vom Culling, (Multi-)-Texturing, Blending etc. absolut identisch. Sind diese Techniken in D3D verstanden, wird der Umstieg sehr leicht fallen. Der Grund wieso ich damals gewechselt bin lag darinne, dass ich DX6 lernte, DX7 kruz darauf und DX8 liess auch nicht lange auf sich warten... und jedes Mal war irgend etwas anders. OpenGL in seiner solchen Form ist seit zig Jahren nicht groß angebohrt worden. All dies sind allerdings reine Meta-Probleme, die mit der API selbst eher weniger zu tun haben.

Aber jedes Haus, dass man baut, sollte mit dem Fundament beginnen.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 10, 2006 09:05 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wegen der Pro-Contra-Diskussion: WhyOpenGL

Wir haben auf alles eine Antwort... ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.026s | 16 Queries | GZIP : On ]