Français
Wünsche et Anregungen

OpenGL - encore un paire Propositions

 

Uwe
''Pascal''
Niemeier
allô gens!

je hatte enfin Gelegenheit, qui OpenGL-Funktionen trop testen et veux la fois un paire Kommentare en supplément isoler.
il y a aussi un paire Propositions et quelque chose Kritik dabei. je hoffe, avant allem letzteres wird avec Wohlwollen aufgenommen

Allgemein:
Mir ist aufgefallen,dass quelques profan-eigene ogl-Funktionen pas entier avec den
gleichnamigen Original-APIs identique sommes. cela fait es schwer pour gens, qui irgendwelche Demos traduire voulons ou bien dans anderen Programmiersprachen déjà avec oGL gearbeitet avons. peut-être peut sich là encore quoi nachbessern, ou bien es muss dans qui späteren Aider entsprechend nachdrücklich sur solche Abweichungen hingewiesen volonté.

ici un paire Details:

ogl(Irgendein objet,...)
chez Übersetzung meiner Ballerspiel-Demos habe je 1 heure gegrübelt, pourquoi mon Asteroiden so komisch par qui région eiern, jusqu'à je qui Fussnote dans qui OpenGL.txt trouvé habe: chez Erzeugung eines Objektes per glu-API liegt qui Körpermittelpunkt im Nullpunkt des Koordinatensystems, chez RGH qui unterste Punkt des Körpers
veux on z.B. une Kugel um ihren Mittelpunkt rotieren laisser, muss on vous alors seulement um ihren Radius pour unten Déplacer. assez embêtant...

ogl(CLEAR)
Entspricht pas qui ogl-API glClear; zusätzlich zum Effacer qui Grafik wird aussi cela
Koordinatensystem zurückgesetzt (Ist là encore un glLoadIdentity incorporé?)
qui Folge ist, dass dans einer Boucle avec CLEAR aucun relativen Transformationen possible
sommes, seulement absolute.
Beispiel RGH-ogl:

[box:03f4aca031]window 50,50-500,500
ogl(Init,%hwnd,0,0,0,1)
declare R%
tandis que 1
cas R%=360:R%=0
inc R%
ogl(clear)
ogl(déplacer,0,0,-3)
ogl(rotate,0,R%,0)
ogL(sphere,0.5,4,2)
ogl(show)
endwhile[/box:03f4aca031]
Beispiel Standart-ogl:
[box:03f4aca031]window 50,50-500,500
oGL(Init,%hwnd,0,0,0,1)
ogl(déplacer,0,0,-3)
tandis que 1
ogl(glClear,~GL_COLOR_BUFFER_BIT | ~GL_DEPTH_BUFFER_BIT)
ogl(rotate,0,1,0)
ogL(sphere,0.5,4,2)
ogl(show)
endwhile[/box:03f4aca031]
Im 2. Beispiel wird qui ogl-Bildschirm zwar gelöscht, qui Matrix mais pas zurückgesetzt, sodass ROTATE chez chaque Durchlauf sur qui bereits gedrehte Szene angewendet wird.

Vorschlag: CLEAR sollte sich seulement sur cela Effacer des Bildes beschränken, pour pourrait on glLoadIdentity kapseln, z.B. comme ogl(RESETCOORD) ou bien so.

ogl(ORIGIN,...)
Besteht anscheinend aus glLoadIdentity + glTranslate (MOVE), mets alors qui Koordinaten sur absolute Werte. Könnte entfallen, si es ogl(RESETCOORD) gäbe.

ogl(STARTLIST)
Gibt une Integer-Namen pour qui DisplayList zurück. cela bedeutet mais, dass on chez mehreren DLs qui jeweiligen Namen z.B. dans einem Array enlever muss, um volle Kontrolle trop avons.
Besser wäre, den Namen selbst vorzugeben, so comment dans qui Original-API. So wüsste on toujours, comment quelle DL anzusprechen wäre, aussi pourrait on une bereits angelegt DL überschreiben.
comment wäre un optionaler paramètre iName% ?
Ausserdem fehlt encore une Kapselung de glDeleteList.

oGL(LOADTEXTUREBMP,...)
ici gilt cela Gleiche comment pour STARTLIST; qui IntegerName wird de Profan vorgegeben, pourrait mais aussi vom User zugeteilt volonté. Arrays könnten entfallen. Texturen könnten z.B. dans einer Boucle angelegt volonté et wären ensuite sur ses Nummerierung trop erreichen.
BTW: une Alternative, um bmp-Handles trop verarbeiten, wäre aussi pas mal

ogl(2D,...)
vois je cela richtig, dass ici zum 1. la fois qui Rückgabewerte einer Funktion direct dans vorgegebene Zielvariablen geschrieben volonté?? très gewöhnungsbedürftig!
BTW: qui entsprechende Umkehrfunktion wäre aussi très nützlich!

ogl(TESTMOUSE,...) & ogl(TESTXY,...)
si on chez letzterem qui Mausposition übergibt, peux on sich ersteres sparen...

ogl(STARTTEST,...) & ogl(ENDTEST)
Praktischer wäre, si on ici un Rechteck vorgeben pourrait comment dans qui Original-API. ensuite entspräche cela Ganze pratique qui alten @Souris-Funktion. qui une Punkt testen veux, peux oui Start- et Endpunkte des Rechtecks übereinanderlegen.

Soviel pour erste.
suis sur Kommentare gespannt (avant allem de Roland)
PS: Werde bientôt encore un paire angepasste Demos posten.

SeeYou
Pascal
 
03.05.2006  
 




RGH
allô Pascal,

là es déjà spät ist et qui prochain Subscriptionslieferung cet nuit encore encore raus soll, aujourd'hui seulement entier kurz:

qui XProfan-oGL-Funktionen avons pas qui intention, qui oGl-API 1:1umzusetzen, d.h. derrière presque chacun oGL-Funktion cacher sich plusieurs API-Aufrufe. derrière Claire verbirgt sich alors deutlich plus que cela glClear. Es wird zum Beispiel un Default-Viewport eingestellt, etc. qui un Beispioel aus qui Literatur umsetzen voudrais, peux oui sur qui vollintegriete OpenGL-API zurückgreifen.
but qui oGL-Funktionen ist es, avec possible wenigen XProfan-Zeilen (aussi à cause de des Tempos!) possible gute Resultate trop erzielen. Aussi soll le nombre qui oGL-Funktionen überschaubar rester, avec cela aussi qui Einsteiger vite zum but venez.

quoi den Ursprung qui Objekte betrifft, habe je longtemps avec mir gerungen. je suis en ausgegangen, qui OpenGL dans erster ligne number pour Jeux eingesetzt volonté wird et là liegen qui Objekte eh bien la fois alle sur dem Erdboden (qui Nulllinie) et ragen pas zur Moitié dans cette hinein. si je une Cuboid pour un maison ou bien une mur baue, devrait je ansonsten so tricksen, comment Du maintenant chez den Asteroiden (ou bien je beim Planeten-Demo). Um avec einem meiner précédent Chefs trop parler: Einen Tod doit wir sterben.

Pourquoi brauchst Du chez Listen et Texturen absolument Arrays? tu peux doch Listen- ou bien Texturnummer chacun beliebigen Integervariablen zuweisen. aussi ici volonté plusieurs OpenGL-API-Aufrufe trop einer XProfan-Funktion zusammengefaßt. quoi cela Effacer einer liste betrifft la hâte Du naturellement droite. cela sollte je encore einbauen.

sofern on Texturen aussi aus Bitmaphandles et aus TGA-Fichiers erzeugen peux, ist geplant. si es mais déjà dans XProfan 10 realisiert wird, sais je encore pas.

Ok, cela soll pour aujourd'hui reichen.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
03.05.2006  
 




Frank
Abbing
[quote-part:35b41f96d0]quoi cela Effacer einer liste betrifft la hâte Du naturellement droite. cela sollte je encore einbauen.[/quote-part:35b41f96d0]
Halte je également pour important. qui API-Aufruf ist zwar aussi kurz, mais zumindest fehlt hierzu qui Beschreibung.

ogl(glDeleteLists,liste&,1)

[quote-part:35b41f96d0]sofern on Texturen aussi aus Bitmaphandles et aus TGA-Fichiers erzeugen peux, ist geplant. si es mais déjà dans XProfan 10 realisiert wird, sais je encore pas.[/quote-part:35b41f96d0]
je plädiere stark pour
là qui 10il Version seulement pour Ende Herbst angekündigt ist, hättest du encore viel Zeit, cela unterzubringen.
 
04.05.2006  
 




RGH
[quote-part:c80f356165=Frank Abbing][quote-part:c80f356165]quoi cela Effacer einer liste betrifft la hâte Du naturellement droite. cela sollte je encore einbauen.[/quote-part:c80f356165]
Halte je également pour important. qui API-Aufruf ist zwar aussi kurz, mais zumindest fehlt hierzu qui Beschreibung.
[/quote-part:c80f356165]
Es sollte déjà possible son, OpenGL sans API trop programmieren. Daher doit oGL(DeleteList, N%) encore incorporé volonté. cet Listen dépenser Einiges à Grafikspeicher.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
04.05.2006  
 



Ähem, den glDeleteLists J'ai eu bereits dans Okrea erfolgreich angewandt - viel wichtiger ist mais le moi es pas-erfolgreich versuchte aussi Texturen wieder freizugeben!

était je seulement trop unbededarft ou bien gibts là quelque chose le moi pas savons peux?
 
04.05.2006  
 




RGH
maintenant trop einigen Punkten quelque chose ausführlicher:

[quote-part:51dbce937f=Uwe Pascal Niemeier]ogl(CLEAR) Entspricht pas qui ogl-API glClear; zusätzlich zum Effacer qui Grafik wird aussi cela Koordinatensystem zurückgesetzt[/quote-part:51dbce937f]
Es geschieht, comment dit, encore einiges plus, partiellement dépendant en, si je mich im Testmode befinde ou bien pas. Es wird dans qui fertigen Aider puis hinzuweisen son, qui ici pas seulement glClear aufgerufen wird! qui Namensähnlichkeit mag quelque chose unglücklich son, mir ist mais encore ne...aucune besserer nom eingefallen.

[quote-part:51dbce937f]Ausserdem fehlt encore une Kapselung de glDeleteList.[/quote-part:51dbce937f]
Ist dans qui prochain (8.) Subscriptionsversion avec drin.

[quote-part:51dbce937f]ogl(2D,...) vois je cela richtig, dass ici zum 1. la fois qui Rückgabewerte einer Funktion direct dans vorgegebene Zielvariablen geschrieben volonté?? très gewöhnungsbedürftig!
BTW: qui entsprechende Umkehrfunktion wäre aussi très nützlich![/quote-part:51dbce937f]
Mir fiel aucun pour den Anwender einfachere Possibilité un, deux paramètre zurückzugeben. (qui Implementierung était pas sans, zumal je naturellement abtesten voulais, qui là wirklich passende Variablen stehen.) l'autre Possibilité wäre gewesen, deux récente trop schaffende Système trop füllen. (So comment %bmpX et %bmpY pour Befehlen, qui une Bitmap magasin.) quoi ist besser?

Que le Umkehrfunktion ist aussi pas so sans: chez qui Wandlung de 2D pour 3D brauche je oui une dritten paramètre (etwa qui Entfernung vom Betrachter), là je ansonsten une Vektor zurückbekomme: un Punkt sur dem Bildschirm entspricht oui einer ganzen ligne number de Punkte im derrière elle liegenden 3D-espace. je denke, qui es wirklich nécessaire, est tief dans qui substance drin, qui il aussi qui dazugehörige API, wohin es qui Umkehrfunktion naturellement gibt, bemühen peux. (Pour cette le cas liefert oGL(2D,...) déjà maintenant den nécessaire dritten paramètre z& zurück.)

[quote-part:51dbce937f]ogl(TESTMOUSE,...) & ogl(TESTXY,...) si on chez letzterem qui Mausposition übergibt, peux on sich ersteres sparen...[/quote-part:51dbce937f]
là la hâte Du naturellement droite. oGL(TestMouse, x&, y&) ist identique avec oGL(TestXY, x&, y&, %MouseX, %MouseY). sofern es beide gibt, liegt arrêt daran, qui TestMouse d'abord là était. j'ai es ensuite dabei gelassen, là Testmouse à cause de qui inférieur Parameterzahl une Tique plus rapide ist comme TestXY. je pourrait naturellement TestMouse entier omettre ou bien etwa chez TestXY qui letzten beiden paramètre optionnel faire. manquer vous, wird qui aktuelle Mausposition pris. quoi meinen diejenigen Subscriptionskunden en supplément, qui cet Funktion(en) déjà einsetzen?

[quote-part:51dbce937f]ogl(STARTTEST,...) & ogl(ENDTEST) Praktischer wäre, si on ici un Rechteck vorgeben pourrait comment dans qui Original-API. [/quote-part:51dbce937f]
oui, aussi ici doit je Dir droite donner, zumal je letztlich sogar pour Verwendung gehabt hätte. oGL(StartTest,...) hat eh bien un (ab qui prochain Lieferung) optionales Parameterpaar dx&, dy&, cela comment dans qui OpenGL-API qui Taille des Rechteckes um den Punkt sx&, sy& bestimmt. Werden cet Paramter weggelassen, volonté cet Werte comment bisher avec 1 angenommen.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
04.05.2006  
 




RGH
[quote-part:a2f1dbe078=iF]Ähem, den glDeleteLists J'ai eu bereits dans Okrea erfolgreich angewandt - viel wichtiger ist mais le moi es pas-erfolgreich versuchte aussi Texturen wieder freizugeben!

était je seulement trop unbededarft ou bien gibts là quelque chose le moi pas savons peux?[/quote-part:a2f1dbe078]
So ist qui API défini:
glDeleteTextures( GLsizei n, const GLuint *textures);
n ist qui anzahl qui trop löschenden Texturen et *textures un aiguille sur un Integer-Array avec den Texturnummern. (Wird seulement une Textur gelöscht, darf es aussi un aiguille sur un einzelnes Integer son.)

(c'est déjà une gewisse Gemeinheit de OpenGL, qui ici qui paramètre oui c'est ca andersherum sommes, comment chez DeleteLists et comme zusätzliche Erschwernis encore un aiguille sur une liste qui trop löschenden Texturen erwartet wird et pas comment chez DeleteLists cela erste trop löschende Element.)

So devrait es alors aller:

oGL(glDeleteTextures, 1, Addr(t&))
t& ist ici qui Texturnummer.

et oui, aussi cet Funktion sollte je encore comme oGL-Funktion einbauen, là es chez größeren OpenGL-Anwendungen (etwa, si chaque Level eines Spieles eigene Texturen verwendet) unumgänglich ist, avec dem Grafikkartenspeicher trop haushalten.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
04.05.2006  
 



[quote-part:8de59f2438]vous, wird qui aktuelle Mausposition pris. quoi meinen diejenigen Subscriptionskunden en supplément, qui cet Funktion(en) déjà einsetzen?[/quote-part:8de59f2438]je suis qui attitude cela qui Subscriptionphase pour voilà mögliche Ungereimtheiten trop erkennen. Roland sollte alors au cours de qui Subscriptionphase aucun considérer avons Funktionen umzubauen, trop ersetzen ou bien gar trop entfernen. ogl.testmouse serait je seulement ensuite pour gelungen tenir, si ogl.testmouse aussi tut quoi es verspricht - quoi IMHO momentan pas so ist: ogl.init erlaubt cela Angeben eines Parenthandles pour den ogloverlay. si cette pas %hwnd est scheiterte ogl.testmouse dans meinen Tests - là wohl %mousex/y relativ vom hwnd pris wird. si dem pas plus so ist ensuite ist alles dans Butter.
 
04.05.2006  
 




RGH
[quote-part:3d74d3090a]iF: Roland sollte alors au cours de qui Subscriptionphase aucun considérer avons Funktionen umzubauen, trop ersetzen ou bien gar trop entfernen.[/quote-part:3d74d3090a]
aucun craintif, qui habe je pas!

[quote-part:3d74d3090a]ogl.testmouse serait je seulement ensuite pour gelungen tenir, si ogl.testmouse aussi tut quoi es verspricht - quoi IMHO momentan pas so ist: ogl.init erlaubt cela Angeben eines Parenthandles pour den ogloverlay. si cette pas %hwnd est scheiterte ogl.testmouse dans meinen Tests - là wohl %mousex/y relativ vom hwnd pris wird. si dem pas plus so ist ensuite ist alles dans Butter. [/quote-part:3d74d3090a]
je werde cela la fois überprüfen.
chez avec Créer(Fenêtre,...) et Créer(Dialog,...) erzeugten Windows löst un Mausklick zwar ne...aucune sortir de des WaitInput aus. (Daher sommes cet la fenêtre pour bestimmte OpenGL-Anwendungen avec WaitInput plutôt ungeeignet.) mais en abgesehen avons %MouseX et %MouseY (et avec cela aussi oGL(TestMouse,...) ) bien sûr qui korrekten zum erzeugtenFenster bezogenen Werte ... zumindest ab qui prochain Subscriptionsversion .

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
04.05.2006  
 




Frank
Abbing
[quote-part:f7f18350e4]Mir fiel aucun pour den Anwender einfachere Possibilité un, deux paramètre zurückzugeben. (qui Implementierung était pas sans, zumal je naturellement abtesten voulais, qui là wirklich passende Variablen stehen.) l'autre Possibilité wäre gewesen, deux récente trop schaffende Système trop füllen. (So comment %bmpX et %bmpY pour Befehlen, qui une Bitmap magasin.) quoi ist besser?[/quote-part:f7f18350e4]
So comme ist, ist es bien.
je schliesse mich mais aussi qui attitude à, cela dans qui Testphase eingeführte Funktionen amélioré volonté devrait, si cela son Handling vereinfacht.
 
04.05.2006  
 




Uwe
''Pascal''
Niemeier
allô gens, allô Roland!

bien sûr peux on pas alle Opportunités berücksichtigen. Sonst pourrait on oui juste chez qui nativen API rester. et es wird toujours la fois quelqu'un ca ou bien jenes Extra brauchen, cela pas implementiert ist.
c'est aussi pas mal so, sonst gäbe es pour Bastler comment mich oui rien plus trop 1faire
[quote-part:032606ccb6]quoi den Ursprung qui Objekte betrifft, habe je longtemps avec mir gerungen.
je suis en ausgegangen, qui OpenGL dans erster ligne number pour Jeux eingesetzt volonté wird et là liegen qui Objekte eh bien la fois alle sur dem Erdboden (qui Nulllinie) et ragen pas zur Moitié dans cette hinein.[/quote-part:032606ccb6]
Stimmt, so hab je cela garnicht gesehen; cela fait Sinn !

[quote-part:032606ccb6]sofern on Texturen aussi aus Bitmaphandles et aus TGA-Fichiers erzeugen peux, ist geplant. [/quote-part:032606ccb6]
si on un Handle verwenden peux, braucht on eigendlich aucun directe Dateiunterstützung plus. il peut doch bereits (presque) jeden beliebigen Bildtyp magasin. et notfalls gibts oui qui GDIPlus.dll et iFs PCU.

[quote-part:032606ccb6]Pourquoi brauchst Du chez Listen et Texturen absolument Arrays?
tu peux doch Listen- ou bien Texturnummer chacun beliebigen Integervariablen zuweisen.[/quote-part:032606ccb6]
mais si on plusieurs Objekte dans einer Boucle erzeugen, positionieren, abfragen usw. voudrais? cela ginge ensuite doch pas sans Arrays. là wäre zB. un Zähler comme Vorgabe pour den Namen sinnvoll.
pas trop oublier qc qui Possibilité, une liste gezielt par Überschreiben trop ersetzen.

[quote-part:032606ccb6]...ogl(2D,...)
Mir fiel aucun pour den Anwender einfachere Possibilité un, deux paramètre zurückzugeben.[/quote-part:032606ccb6]
une Possibilité wäre, cela qui Anwender une Bereich vorgeben muss, den qui Funktion ensuite füllt. Korrektes Lecture läge ensuite beim Anwender.

quoi IMHO encore avec rein sollte: une Skalierfunktion et Nutzung/Manipulation qui Lichter.
Pour cette wird bestimmt besoin bestehen.

et naturellement une Funktion, qui den letzten ogl-faute comme String ausgibt
(ou bien une entsprechende Systemvariable et une liste zum Nachschlagen)

SeeYou
Pascal
 
04.05.2006  
 




RGH
[quote-part:2773ab08cb=Frank Abbing]
[quote-part:2773ab08cb]sofern on Texturen aussi aus Bitmaphandles et aus TGA-Fichiers erzeugen peux, ist geplant. si es mais déjà dans XProfan 10 realisiert wird, sais je encore pas.[/quote-part:2773ab08cb]
je plädiere stark pour
là qui 10il Version seulement pour Ende Herbst angekündigt ist, hättest du encore viel Zeit, cela unterzubringen. [/quote-part:2773ab08cb]
Ab qui prochain Subscriptionsversion gibt es qui Funktion:
n& = oGL(GetTextureBMP, hBild&, filtre%)
hBild& ist cela Handle einer Bitmap.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
04.05.2006  
 




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

7.468 Views

Untitledvor 0 min.
Peter Max Müller23.10.2017
Andreas Koch10.01.2013
Deli Beatz28.08.2012

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  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