Español
Wünsche y Sugerencias

OpenGL - Noch unos pocos Propuestas

 

Uwe
''Pascal''
Niemeier
¡Hola Personas!

Tuve endlich Gelegenheit, el OpenGL-Características a testen y voluntad veces unos pocos Kommentare dazu absondern.
Hay auch unos pocos Propuestas y algo Kritik esta. Yo hoffe, antes allem letzteres es con Wohlwollen aufgenommen

Allgemein:
Mir es aufgefallen,dass algunos profano-propio ogl-Características no bastante con el
gleichnamigen Original-APIs identisch son. Das macht lo schwer para Personas, el irgendwelche Demos traducir querer oder en otro Programmiersprachen ya con oGL gearbeitet haben. Tal vez lässt se como todavía qué nachbessern, oder lo muss en el späteren Ayuda entsprechend nachdrücklich en solche Abweichungen hingewiesen voluntad.

Hier unos pocos Details:

ogl(Irgendein Objeto,...)
En Übersetzung meiner Ballerspiel-Demos Yo 1 Stunde gegrübelt, por qué mi Asteroiden así komisch por el Gegend eiern, a Yo el Fussnote en el OpenGL.txt gefunden habe: En Erzeugung uno Objektes por glu-API liegt el Körpermittelpunkt en el Nullpunkt des Koordinatensystems, en RGH el unterste Punkt des Körpers
Will uno z.B. una Kugel en ihren Mittelpunkt rotieren dejar, muss uno ellos also sólo en ihren Radius después de unten mover. Ziemlich lästig...

ogl(CLEAR)
Entspricht no ogl-API glClear; zusätzlich para Löschen el Grafik se auch el
Koordinatensystem zurückgesetzt (Ist como todavía una glLoadIdentity instalado?)
El Folge es, dass en uno Bucle con CLEAR no relativen Transformationen posible
son, sólo absolute.
Ejemplo RGH-ogl:

[box:03f4aca031]window 50,50-500,500
ogl(Init,%hwnd,0,0,0,1)
declarar R%
mientras que 1
caso R%=360:R%=0
inc R%
ogl(clear)
ogl(move,0,0,-3)
ogl(rotate,0,R%,0)
ogL(sphere,0.5,4,2)
ogl(show)
endwhile[/box:03f4aca031]
Ejemplo Standart-ogl:
[box:03f4aca031]window 50,50-500,500
oGL(Init,%hwnd,0,0,0,1)
ogl(move,0,0,-3)
mientras 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. Ejemplo se el ogl-Bildschirm zwar gelöscht, el Matrix pero no zurückgesetzt, sodass ROTATE cada Durchlauf en el ya gedrehte Szene angewendet se.

Vorschlag: CLEAR debería se sólo el Löschen des Bildes beschränken, dafür podría uno glLoadIdentity kapseln, z.B. como ogl(RESETCOORD) más o menos.

ogl(ORIGIN,...)
Besteht anscheinend de glLoadIdentity + glTranslate (MOVE), setzt Así que el Koordinaten en absolute Werte. Könnte entfallen, si ogl(RESETCOORD) gäbe.

ogl(STARTLIST)
Gibt una Integer-Namen para el DisplayList zurück. Das bedeutet aber, dass uno en más DLs el jeweiligen Namen z.B. en un Array ablegen muss, en volle Kontrolle a haben.
Besser wäre, el Namen incluso vorzugeben, como en el Original-API. So saber uno siempre, como welche DL anzusprechen wäre, ausserdem podría uno una ya creado DL überschreiben.
Como wäre una optionaler Parámetro iName% ?
Ausserdem fehlt ni Kapselung de glDeleteList.

oGL(LOADTEXTUREBMP,...)
Hier gilt el Gleiche como para STARTLIST; el IntegerName se de Profano vorgegeben, podría aber auch vom User zugeteilt voluntad. Arrays könnten entfallen. Texturen könnten z.B. en uno Bucle creado y ser wären entonces encima ihre Nummerierung a erreichen.
BTW: Un Alternative, en bmp-Handles a verarbeiten, wäre auch no schlecht

ogl(2D,...)
Sehe Yo el correcto, dass hier para 1. Tiempo el Rückgabewerte uno Función direkt en vorgegebene Zielvariablen geschrieben voluntad?? Sehr gewöhnungsbedürftig!
BTW: El entsprechende Umkehrfunktion wäre auch muy nützlich!

ogl(TESTMOUSE,...) & ogl(TESTXY,...)
Wenn uno en letzterem el Mausposition übergibt, puede ser se ersteres sparen...

ogl(STARTTEST,...) & ogl(ENDTEST)
Praktischer wäre, si uno hier una Rechteck vorgeben podría como en el Original-API. Dann entspräche el Ganze praktisch el alten @Ratón-Función. Wer una Punkt testen voluntad, de hecho puede Start- y Endpunkte des Rechtecks übereinanderlegen.

Soviel fürs erste.
Bin en Kommentare gespannt (antes allem de Roland)
PS: Werde demnächst todavía unos pocos angepasste Demos puesto.

SeeYou
Pascal
 
03.05.2006  
 




RGH
¡Hola Pascal,

como lo ya spät es y el nächste Subscriptionslieferung esta nacht todavía todavía fuera se, heute sólo bastante kurz:

El XProfan-oGL-Características haben no el Absicht, el oGl-API 1:1umzusetzen, d.h. hinter fast cada oGL-Función verbergen se mehrere API-Aufrufe. Hinter Claro verbirgt se also deutlich más que el glClear. Lo se para Ejemplo una Default-Viewport eingestellt, etc. Wer una Beispioel de el Literatur umsetzen möchte, de hecho puede en el vollintegriete OpenGL-API zurückgreifen.
Ziel el oGL-Características es, con möglichst wenigen XProfan-Zeilen (auch wegen des Tempos!) möglichst gute Resultate a erzielen. Außerdem se el número el oGL-Características überschaubar bleiben, así auch el Einsteiger rápidamente para Ziel kommt.

Was el Ursprung los objetos betrifft, Yo largo con me gerungen. Yo bin su ausgegangen, daß OpenGL en erster Linie para Juegos eingesetzt voluntad se y como mentira el Objetos nun veces todos en el Erdboden (el Nulllinie) y ragen no a Hälfte en esta hinein. Cuando tengo un Cuboid para una Haus oder una Mauer baue, müßte Yo ansonsten así tricksen, como Usted ahora en el Asteroiden (oder Yo beim Planeten-Demo). Um con un meiner früheren Chefs a sprechen: Einen Tod necesario wir sterben.

¿Por qué Usted necesita en Listen y Texturen necesariamente Arrays? Usted puede doch Listen- oder Texturnummer cada beliebigen Integervariablen zuweisen. Auch hier voluntad mehrere OpenGL-API-Aufrufe a uno XProfan-Función zusammengefaßt. Was el Löschen uno Liste betrifft hast Usted natürlich bastante. Das debería Todavía einbauen.

Daß uno Texturen auch de Bitmaphandles y de TGA-Archivos erzeugen kann, es geplant. Ob lo aber ya en XProfan 10 realisiert se, weiß Todavía no.

Ok, el se para heute reichen.

Saludo
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:35b41f96d0]Was el Löschen uno Liste betrifft hast Usted natürlich bastante. Das debería Todavía einbauen.[/quote:35b41f96d0]
Halte Yo ebenfalls para wichtig. Der API-Aufruf Aunque también brevemente, aber zumindest fehlt hierzu el Descripción.

ogl(glDeleteLists,liste&,1)

[quote:35b41f96d0]Daß uno Texturen auch de Bitmaphandles y de TGA-Archivos erzeugen kann, es geplant. Ob lo aber ya en XProfan 10 realisiert se, weiß Todavía no.[/quote:35b41f96d0]
Yo plädiere stark dafür
Como el 10él Versión sólo para Ende Herbst angekündigt es, hättest du todavía viel Tiempo, el unterzubringen.
 
04.05.2006  
 




RGH
[quote:c80f356165=Frank Abbing][quote:c80f356165]Was el Löschen uno Liste betrifft hast Usted natürlich bastante. Das debería Todavía einbauen.[/quote:c80f356165]
Halte Yo ebenfalls para wichtig. Der API-Aufruf Aunque también brevemente, aber zumindest fehlt hierzu el Descripción.
[/quote:c80f356165]
Lo debería ya posible ser, OpenGL sin API a programa. Daher muß oGL(DeleteList, N%) todavía se instalará. Diese Listen verbrauchen Einiges a Grafikspeicher.

Saludo
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, el glDeleteLists Tuve ya en Okrea erfolgreich angewandt - viel wichtiger es aber el Yo no-erfolgreich versuchte auch Texturen otra vez freizugeben!

War Yo sólo a unbededarft oder gibts como algo el Yo no wissen kann?
 
04.05.2006  
 




RGH
Jetzt a algunos Punkten algo ausführlicher:

[quote:51dbce937f=Uwe Pascal Niemeier]ogl(CLEAR) Entspricht no ogl-API glClear; zusätzlich para Löschen el Grafik se auch el Koordinatensystem zurückgesetzt[/quote:51dbce937f]
Lo geschieht, como dijo, todavía einiges mehr, teilweise abhängig su, si Yo mich en el Testmode befinde oder no. Lo se en el fertigen Ayuda darauf hinzuweisen ser, daß hier no sólo glClear aufgerufen se! El Namensähnlichkeit mag algo unglücklich ser, me es aber todavía kein besserer Name eingefallen.

[quote:51dbce937f]Ausserdem fehlt ni Kapselung de glDeleteList.[/quote:51dbce937f]
Ist en el nächsten (8.) Subscriptionsversion con drin.

[quote:51dbce937f]ogl(2D,...) Sehe Yo el correcto, dass hier para 1. Tiempo el Rückgabewerte uno Función direkt en vorgegebene Zielvariablen geschrieben voluntad?? Sehr gewöhnungsbedürftig!
BTW: El entsprechende Umkehrfunktion wäre auch muy nützlich![/quote:51dbce937f]
Mir fiel no para el Anwender einfachere Möglichkeit una, zwei Parámetro zurückzugeben. (El Implementierung war no sin, especialmente Yo natürlich abtesten quería, daß como wirklich passende Variables posición.) El otro Möglichkeit wäre gewesen, zwei neu a schaffende Systemvariablen a füllen. (So como %bmpX y %bmpY después de Befehlen, el una Mapa de bits invitar.) Was es mejor?

Que el Umkehrfunktion es auch no así sin: En Wandlung de 2D después de 3D brauche Yo sí una dritten Parámetro (etwa el Entfernung vom Betrachter), como Yo ansonsten una Vektor zurückbekomme: Ein Punkt en el Bildschirm entspricht sí uno ganzen Linie de Punkte en el detrás de él liegenden 3D-Raum. Yo denke, wer lo wirklich benötigt, es así tief en el Materie drin, daß él auch el dazugehörige API, wo lo el Umkehrfunktion natürlich son, bemühen kann. (Für esta Fall liefert oGL(2D,...) ya ahora el benötigten dritten Parámetro z& zurück.)

[quote:51dbce937f]ogl(TESTMOUSE,...) & ogl(TESTXY,...) Wenn uno en letzterem el Mausposition übergibt, puede ser se ersteres sparen...[/quote:51dbce937f]
Como hast Usted natürlich bastante. oGL(TestMouse, x&, y&) es identisch con oGL(TestXY, x&, y&, %MouseX, %MouseY). Daß lo beide son, liegt sólo daran, daß TestMouse zuerst como war. Yo habe lo entonces esta gelassen, como Testmouse wegen el geringeren Parameterzahl una Tick más rápido es como TestXY. Yo podría natürlich TestMouse bastante weglassen oder etwa en TestXY el letzten beiden Parámetro optional hacer. Fehlen Sie, se el aktuelle Mausposition genommen. Was media diejenigen Subscriptionskunden dazu, el esta Función(en) ya einsetzen?

[quote:51dbce937f]ogl(STARTTEST,...) & ogl(ENDTEST) Praktischer wäre, si uno hier una Rechteck vorgeben podría como en el Original-API. [/quote:51dbce937f]
Sí, auch hier muß Yo Usted bastante geben, especialmente Yo letztlich incluso dafür Verwendung gehabt hätte. oGL(StartTest,...) ha nun una (de el nächsten Lieferung) optionales Parameterpaar dx&, dy&, el como en el OpenGL-API el Größe des Rechteckes en el Punkt sx&, sy& determinado. Werden esta Paramter weggelassen, voluntad esta Werte como bisher con 1 angenommen.

Saludo
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:a2f1dbe078=iF]Ähem, el glDeleteLists Tuve ya en Okrea erfolgreich angewandt - viel wichtiger es aber el Yo no-erfolgreich versuchte auch Texturen otra vez freizugeben!

War Yo sólo a unbededarft oder gibts como algo el Yo no wissen kann?[/quote:a2f1dbe078]
So Es el API definiert:
glDeleteTextures( GLsizei n, const GLuint *textures);
n Es el anzahl el a löschenden Texturen y *textures una Zeiger en una Integer-Array con el Texturnummern. (Wird sólo una Textur gelöscht, darf lo auch una Zeiger en una einzelnes Integer ser.)

(Es ya una gewisse Gemeinheit de OpenGL, daß hier el Parámetro genau andersherum son, como en DeleteLists y como zusätzliche Erschwernis todavía una Zeiger en una Liste el a löschenden Texturen esperado se y no como en DeleteLists el erste a löschende Element.)

So müßte lo also ir:

oGL(glDeleteTextures, 1, Addr(t&))
t& es hier el Texturnummer.

Und sí, estos Función debería Todavía como oGL-Función einbauen, como lo en größeren OpenGL-Anwendungen (etwa, si cada Level uno Spieles propio Texturen verwendet) unumgänglich es, con el Grafikkartenspeicher a haushalten.

Saludo
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:8de59f2438]Sie, se el aktuelle Mausposition genommen. Was media diejenigen Subscriptionskunden dazu, el esta Función(en) ya einsetzen?[/quote:8de59f2438]Yo bin el Meinung el el Subscriptionphase dafür como es mögliche Ungereimtheiten a erkennen. Roland debería also während el Subscriptionphase no Bedenken haben Características umzubauen, a sustituir oder gar a entfernen. ogl.testmouse sería Yo sólo entonces para gelungen halten, si ogl.testmouse auch tut qué lo verspricht - qué IMHO momentan no así es: ogl.init erlaubt el Angeben uno Parenthandles para el ogloverlay. Wenn dieser no %hwnd es así scheiterte ogl.testmouse en media Tests - como wohl %mousex/y relativ vom hwnd genommen se. Wenn el no mehr así es entonces alles en Butter.
 
04.05.2006  
 




RGH
[quote:3d74d3090a]IF: Roland debería also während el Subscriptionphase no Bedenken haben Características umzubauen, a sustituir oder gar a entfernen.[/quote:3d74d3090a]
Keine Bange, el Yo no!

[quote:3d74d3090a]ogl.testmouse sería Yo sólo entonces para gelungen halten, si ogl.testmouse auch tut qué lo verspricht - qué IMHO momentan no así es: ogl.init erlaubt el Angeben uno Parenthandles para el ogloverlay. Wenn dieser no %hwnd es así scheiterte ogl.testmouse en media Tests - como wohl %mousex/y relativ vom hwnd genommen se. Wenn el no mehr así es entonces alles en Butter. [/quote:3d74d3090a]
Yo voluntad el veces überprüfen.
En con Crear(Ventana,...) y Crear(Diálogo,...) erzeugten Fenstern löst una Mausklick zwar kein Verlassen des WaitInput de. (Daher estos Ventana para cierto OpenGL-Anwendungen con WaitInput más ungeeignet.) Aber su abgesehen haben %MouseX y %MouseY (y así auch oGL(TestMouse,...) ) selbstverständlich el korrekten para erzeugtenFenster bezogenen Werte ... zumindest de el nächsten Subscriptionsversion .

Saludo
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:f7f18350e4]Mir fiel no para el Anwender einfachere Möglichkeit una, zwei Parámetro zurückzugeben. (El Implementierung war no sin, especialmente Yo natürlich abtesten quería, daß como wirklich passende Variables posición.) El otro Möglichkeit wäre gewesen, zwei neu a schaffende Systemvariablen a füllen. (So como %bmpX y %bmpY después de Befehlen, el una Mapa de bits invitar.) Was es mejor?[/quote:f7f18350e4]
So como es, es bien.
Yo schliesse mich aber auch el Meinung a, el en el Testphase eingeführte Características todavía ser mejorada debería, si el ihr Handling vereinfacht.
 
04.05.2006  
 




Uwe
''Pascal''
Niemeier
¡Hola Personas, hallo Roland!

Klar puede ser no todos Möglichkeiten berücksichtigen. Sonst podría uno sí igual en nativen API bleiben. Und lo se siempre veces alguien dies oder jenes Extra brauchen, el no implementiert es.
Es auch bastante bien así, sonst gäbe lo para Bastler como mich sí nichts mehr a tun
[quote:032606ccb6]Was el Ursprung los objetos betrifft, Yo largo con me gerungen.
Yo bin su ausgegangen, daß OpenGL en erster Linie para Juegos eingesetzt voluntad se y como mentira el Objetos nun veces todos en el Erdboden (el Nulllinie) y ragen no a Hälfte en esta hinein.[/quote:032606ccb6]
Stimmt, así tener Yo el garnicht gesehen; el macht Sinn !

[quote:032606ccb6]Daß uno Texturen auch de Bitmaphandles y de TGA-Archivos erzeugen kann, es geplant. [/quote:032606ccb6]
Wenn uno una Handle uso kann, braucht uno eigendlich no direkte Dateiunterstützung mehr. Se puede doch ya (fast) cada beliebigen Bildtyp invitar. Und notfalls gibts sí el GDIPlus.dll y iFs PCU.

[quote:032606ccb6]¿Por qué Usted necesita en Listen y Texturen necesariamente Arrays?
Usted puede doch Listen- oder Texturnummer cada beliebigen Integervariablen zuweisen.[/quote:032606ccb6]
Aber si uno mehrere Objetos en uno Bucle erzeugen, positionieren, abfragen usw. möchte? Das ginge entonces doch no sin Arrays. Como wäre zB. una Zähler como Vorgabe para el Namen sinnvoll.
No a vergessen el Möglichkeit, una Liste gezielt por Überschreiben a sustituir.

[quote:032606ccb6]...ogl(2D,...)
Mir fiel no para el Anwender einfachere Möglichkeit una, zwei Parámetro zurückzugeben.[/quote:032606ccb6]
Un Möglichkeit wäre, el el Anwender una Zona vorgeben muss, el el Función entonces füllt. Korrektes Auslesen läge entonces beim Anwender.

Was IMHO todavía con rein debería: Un Skalierfunktion y Nutzung/Manipulation el Lichter.
Dafür se determinado Bedarf bestehen.

Und natürlich una Función, el el letzten ogl-Fehler como String ausgibt
(oder una entsprechende Systemvariable y una Liste para Nachschlagen)

SeeYou
Pascal
 
04.05.2006  
 




RGH
[quote:2773de08cb=Frank Abbing]
[quote:2773de08cb]Daß uno Texturen auch de Bitmaphandles y de TGA-Archivos erzeugen kann, es geplant. Ob lo aber ya en XProfan 10 realisiert se, weiß Todavía no.[/quote:2773de08cb]
Yo plädiere stark dafür
Como el 10él Versión sólo para Ende Herbst angekündigt es, hättest du todavía viel Tiempo, el unterzubringen. [/quote:2773de08cb]
Ab el nächsten Subscriptionsversion hay el Función:
n& = oGL(GetTextureBMP, hBild&, Filter%)
hBild& es el Handle uno Mapa de bits.

Saludo
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  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

7.557 Views

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

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie