Français
Forum

OpenGL glDrawArrays Befehl Problem

 

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éparation
Beispielcode 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.
 
27.05.2007  
 




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  
 



Na simple 8 Byte pro Float! 8x4x3
KompilierenMarqueSéparation
declare a#
dim a#,96
float a#, 0 =  blub
float a#, 8 =  blub
float a#, 16 =  blub
 
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!
 
30.05.2007  
 




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!
 
30.05.2007  
 



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.
 
30.05.2007  
 




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  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.028 Views

Untitledvor 0 min.
H.Brill28.05.2023
Sven Bader05.08.2021
HofK28.05.2015
funkheld31.03.2012

Themeninformationen

cet Thema hat 3 participant:

Andreas Gaida (7x)
iF (4x)
Frank Abbing (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie