| |
|
|
Andreas Gaida | Hi! Habe un Problem avec glDrawArrays Befehl irgendwie bekomme je ihm depuis vielen Tagen et Internet cherche pas so zum marcher comment il es soll. Habe déjà paire Dutzend Varationen versucht sans erfolg peut-être vois je seulement den forêt avant Lauter Bäumen pas je wäre très reconnaissant pour Aider chez dem Problem.
Mfg Andreas KompilierenMarqueSéparationBeispielcode des Problem :
Declare Dateiname$,Datei$,ab$,rückgabe&,ende%,byt_count&
Declare vertex_P#,vertex_N#,vertex_T#,vertex_F3#,vertex_F4#,quad_A#
Declare zähler_P&,zähler_N&,zähler_T&,zähler_F&,zähler_F3&,zähler_F4&
daten_init Initialisiert Bereiche und füllt sie mit Daten
cls
oGL(Init, %hWnd, 0, 0, 0, 1)
@Set(oGLDepth, 1000)
oGL(glEnableClientState,~GL_VERTEX_ARRAY)
print oGL(glIsEnabled,~GL_VERTEX_ARRAY)
oGL(glVertexPointer,3,~GL_FLOAT,0,@Addr(quad_A#))
setTimer 20 max. 50 Frames /sek.
WhileNot ende%
WaitInput
DrawGLScene
EndWhile
ende_init
proc DrawGLScene
oGL(Clear)
oGL(Move, 0,0, -4)
quad wenn aktiviert zeigt Quadrat an wie es aussehen soll
oGL(glDrawArrays,~GL_QUADS, 0, 12) soll Quadrat zeichnen aus einen Bereich heraus
oGL(Show)
endproc
proc quad
rückgabe& =oGL(glBegin,~GL_QUADS)
oGL(glVertex3f,@Float(quad_A#, 0),@Float(quad_A#, 8),@Float(quad_A#, 16))
oGL(glVertex3f,@Float(quad_A#, 24),@Float(quad_A#, 32),@Float(quad_A#, 40))
oGL(glVertex3f,@Float(quad_A#, 48),@Float(quad_A#, 56),@Float(quad_A#, 64))
oGL(glVertex3f,@Float(quad_A#, 72),@Float(quad_A#, 80),@Float(quad_A#, 88))
rückgabe& = oGL(glEnd)
endproc
proc daten_init
Dim vertex_P# ,24000000
Dim vertex_N# ,24000000
Dim vertex_T# ,16000000
Dim vertex_F3#,12000000
Dim vertex_F4#,12000000
Dim quad_A# ,12000000
byt_count& = 0 Wenn 4 Zeigt glDrawArrays was an aber nicht das was es soll
Float quad_A#, (0 +byt_count&) = 0.0
Float quad_A#, (8 +byt_count&) = 1.0
Float quad_A#, (16+byt_count&) = 1.0
Float quad_A#, (24+byt_count&) = 0.0
Float quad_A#, (32+byt_count&) = 0.0
Float quad_A#, (40+byt_count&) = 1.0
Float quad_A#, (48+byt_count&) = 1.0
Float quad_A#, (56+byt_count&) = 0.0
Float quad_A#, (64+byt_count&) = 1.0
Float quad_A#, (72+byt_count&) = 1.0
Float quad_A#, (80+byt_count&) = 1.0
Float quad_A#, (88+byt_count&) = 1.0
endproc
proc ende_init
Dispose vertex_P#
Dispose vertex_N#
Dispose vertex_T#
Dispose vertex_F3#
Dispose vertex_F4#
Dispose quad_A#
ass=s4 href='./../../function-references/XProfan/endproc/'>endproc
Administratorische Anmerkung: Pour Quellcodes s'il te plaît den CODE-journée benutzen. |
|
|
| Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 27.05.2007 ▲ |
|
|
|
|
Frank Abbing | là vas du wohl faux avant. comment je es verstanden habe, musst du pour une Display-liste benutzen:
[web]https://wiki.delphigl.com/index.php/Displaylisten[/web] avec glNewList une neue liste starten, cet füllen et ensuite avec glCallList Montrer. Roland hat mais Display-Listen incorporé. peut-être devrait du cet benutzen, anstatt selber quelle per API nachzubauen. |
|
|
| |
|
|
|
Andreas Gaida | Hi! glDrawArrays peux dans Displaylisten vorkommen. mais sa devoir ist es Vertex données aus Arrays vite aus dem Arbeitsspeicher trop Zeichnen. Z.B peux on avec une Aufruf 10000 Dreiecke sur einmal Zeichnen ou bien dans un Displayliste insérer Displaylisten volonté im grenier qui Grafikkarte gehalten et sommes très vite mais malheureusement eignen vous sich seulement pour Statische Objekte et qui place des Mémoire ist malheureusement begrenzt veux on eh bien Animationen erstellen braucht on une schnelle Possibilité viele 3D données récente trop Zeichnen. cet Methode: rückgabe& =oGL(glBegin,~GL_QUADS) oGL(glVertex3f,@Float(quad_A#, 0),@Float(quad_A#, 8),@Float(quad_A#, 16)) oGL(glVertex3f,@Float(quad_A#, 24),@Float(quad_A#, 32),@Float(quad_A#, 40)) oGL(glVertex3f,@Float(quad_A#, 48),@Float(quad_A#, 56),@Float(quad_A#, 64)) oGL(glVertex3f,@Float(quad_A#, 72),@Float(quad_A#, 80),@Float(quad_A#, 88)) rückgabe& = oGL(glEnd) ist pour simple trop lente ,glDrawArrays müste mindestens 10 la fois so vite son si pas encore viel plus rapide . malheureusement weis je pas wieso qui umsetzung qui C Beispiele pour XProfan pas Funktioniert
C Beispiel : glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 0, vertex); glDrawArrays(GL_TRIANGLES, 0, 6);
Ganzer Queltext: [...]
MfG Andreas |
|
|
| Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 27.05.2007 ▲ |
|
|
|
|
Andreas Gaida | Hi! peux mir peut-être quelqu'un dire comment qui données des C Arrays dans Xprofan entier oui c'est ca nachgebildet volonté peut(doit Byte oui c'est ca qui gleiche anordnung im grenier avons) ou bien quelle Position chaque Teile des C Arrays dans une Bereich einnehmen würden.
Pour cet Informationen wäre je très reconnaissant.
C Array : GLfloat vertex[4][3]={{-5.0f, 5.0f, 0.0f}, {-5.0f, -5.0f, 0.0f }, {5.0f, -5.0f, 0.0f }, {5.0f, 5.0f, 0.0f }};
MfG Andreas |
|
|
| Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 29.05.2007 ▲ |
|
|
|
|
| |
|
| |
|
|
|
Andreas Gaida | THX
sur cet Art habe je es aussi déjà versucht
Faible quad_A# ,120000 byt_count& = 0 Float quad_A#, (0 +byt_count&) = 0.0 Float quad_A#, (8 +byt_count&) = 1.0 Float quad_A#, (16+byt_count&) = 1.0 Float quad_A#, (24+byt_count&) = 0.0 Float quad_A#, (32+byt_count&) = 0.0
habe je n'en sais rien weshalb qui glDrawArrays Befehl pas funktioniert habe mich bisher à l'espoir geklammert le moi cela Array faux bestückt habe mais qui ist avec cela wohl hinfällig.
MfG Andreas |
|
|
| Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 30.05.2007 ▲ |
|
|
|
|
| Mach la fois un lauffähiges Minimalbeispiel - aus dem aussi ersichtlich ist comment Du cela Array übergibst. et Codes s'il te plaît toujours avec KompilierenMarqueSéparation[/CODE] kennzeichnen! |
|
|
| |
|
|
|
Andreas Gaida | cela erste Programme cet Treads ist cela Beispiel Programme dans qui Procedure daten_init volonté dem Array qui zugehörigen données transfert. qui Procedure quad zeigt si vous aktiviert wird comme ausehen sollte. malheureusement klapt es avec qui anderen Methode avec glDrawArrays pas cela gleiche trop zeichnen . si Je l' ersten Float wert des Arrays de 0.0 sur 1.0 ändere zeichnet glDrawArrays quelque chose mais pas cela richtige. avec diesem Code wird cela Array dem glDrawArrays Befehl zur la disposition gestellt: KompilierenMarqueSéparation Bisher ist es Je ne gelungen qui données im Array so anzulegen le moi cela gleiche ergebniss bekomme comment avec qui quad Procedure.quoique je déjà très viele verschiedene anordnungen versucht habe weswegen je pas weis si je là une faute fais ou bien qui peut-être dans Profan liegt . |
|
|
| Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 30.05.2007 ▲ |
|
|
|
|
| Probiere la fois avec Doubles statt avec Floats! |
|
|
| |
|
|
|
| Nachtrag je hatte ici warscheinlich im OGL-Bereich une OGL-Source posté quel pour diesem Prinzip une ganze Szene zeichnet dans qui on sich aussi bewegen peux. Sogar avec Spiegelung sur dem Boden etc - exposition la fois im OGL-Bereich pour Codes de mir - peut-être hilfts. |
|
|
| |
|
|
|
Andreas Gaida | Ok werde pour den Codes regarder viellen Dank
MfG Andreas |
|
|
| Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 30.05.2007 ▲ |
|
|
|
|
Andreas Gaida | Problem Gelöst Vielen Dank IF qui Tip avec den Doubles hat es gebracht habe pas gewust cela cela C float seulement 4 Bytes hat et ging de den XProfan 8 Bytes aus cela muste oui Murks donner
MfG Andreas |
|
|
| Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 31.05.2007 ▲ |
|
|
|