Aktuelle Zeit: 23.07.2019 01:11

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Forum gesperrt Dieses Thema ist gesperrt. Sie können keine Beiträge editieren oder weitere Antworten erstellen.  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: OpenGL-Ersatz-Funktionen
BeitragVerfasst: 06.02.2006 07:24 
Offline
Benutzeravatar

Registriert: 29.08.2004 08:37
Hallo,

Da es viele Fehler gibt, die das Nutzen von glFrustum, glOrtho, gluPerspective, gluOrtho2D unmöglich machen hab ich euch hier ein paar Ersatzfunktionen:

Code:
Procedure glFrustum(Left.d, Right.d, Bottom.d, Top.d, Near.d, Far.d)
  Protected Dim Frustum_Matrix.d(3, 3)
  Frustum_Matrix(0, 0) = (2.0 * Near)/(Right-Left)
  Frustum_Matrix(1, 1) = (2.0 * Near)/(Top-Bottom)
  Frustum_Matrix(2, 0) = (Right+Left)/(Right-Left)
  Frustum_Matrix(2, 1) = (Top+Bottom)/(Top-Bottom)
  Frustum_Matrix(2, 2) = -1.0 * ((Far+Near)/(Far-Near))
  Frustum_Matrix(3, 2) = -1.0 * ((2.0*Far*Near)/(Far-Near))
  Frustum_Matrix(2, 3) = -1.0
  ProcedureReturn glMultMatrixd_(@Frustum_Matrix(0, 0))
EndProcedure

Procedure gluPerspective(Fov.d, Ratio.d, Near.d, Far.d)
  L_Dummy.f
  Fov = (Fov/180)*3.14159
  Define.d Left, Right, Top, Bottom
  L_Dummy = Tan(Fov*0.5)
  L_Dummy * Near
  Top = L_Dummy
  Bottom = -L_Dummy
  Left = Bottom * Ratio
  Right = Top * Ratio
  ProcedureReturn glFrustum(Left, Right, Bottom, Top, Near, Far)
EndProcedure

Procedure glOrtho(Left.d, Right.d, Bottom.d, Top.d, Near.d, Far.d)
  Protected Dim Ortho_Matrix.d(3, 3)
  Ortho_Matrix(0, 0) =  2.0/(Right-Left  )
  Ortho_Matrix(1, 1) =  2.0/(Top  -Bottom)
  Ortho_Matrix(2, 2) = -2.0/(Far  -Near  )
  Ortho_Matrix(3, 3) = 1.0
  Ortho_Matrix(3, 0) = -1.0*(Right+Left)/(Right-Left)
  Ortho_Matrix(3, 1) = -1.0*(Top+Bottom)/(Top-Bottom)
  Ortho_Matrix(3, 2) = -1.0*(Far+Near  )/(Far-Near  )
  ProcedureReturn glMultMatrixd_(@Ortho_Matrix(0, 0))
EndProcedure

Procedure gluOrtho2D(Left.d, Right.d, Bottom.d, Top.d)
  ProcedureReturn glOrtho(Left.d, Right.d, Bottom.d, Top.d, -1.0, 1.0)
EndProcedure

_________________
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Forum gesperrt Dieses Thema ist gesperrt. Sie können keine Beiträge editieren oder weitere Antworten erstellen.  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye