| |
|
|
- Página 1 - |
|
Frank Abbing | Yo blanco, dass OpenGL no Schattenwurf bereitstellt. Aber tal vez sabe sí alguien una Möglichkeit, Schatten möglichst simpel a simulieren? |
|
|
| |
|
|
|
| |
|
- Página 1 - |
|
| [quote:cbc2bf0039=Frank Abbing][quote:cbc2bf0039]Man debería en el Schatten uno Objektes a erzeugen el Objeto de sicht el Lichquelle ablichten y en el Textur el a beschattenden Elemente legen [/quote:cbc2bf0039] También trabajo sí Stencilschatten. Nur son el Codes dazu todos en C++ y GLSL. Tal vez de hecho puede alguien con C++-Kenntnissen veces a la Code ajustar, dass él con Profano funktioniert. [...] [/quote:cbc2bf0039]Aha, lag Yo also con meiner Annahme garnicht así falso.
Como una OGL-Szene sin embargo como bitmap abgelichtet se en el bitmap en una Textur a legen weiß Yo sin embargo no. |
|
|
| |
|
|
|
Frank Abbing | Naja, dafür es eben el Stencil pensamiento. Der Code liegt en efecto antes, sólo es C++ no mein Ding. Hier veces Teile des Codes en Profano: KompilierenMarcaSeparación!ogl("glColorMask",~GL_FALSE, ~GL_FALSE, ~GL_FALSE, ~GL_FALSE)
Schreiben in den Depth-Buffer ausschalten code
ogl("glDepthMask",~GL_FALSE)
Stencil-Test einschalten, code
ogl("glEnable",~GL_STENCIL_TEST)
ogl("glStencilFunc",~GL_ALWAYS, 1, $FFFFFFF)
ogl("glStencilOp",~GL_KEEP, ~GL_KEEP, ~GL_INCR)
Face-Culling richtig einstellen code
ogl("glEnable",~GL_CULL_FACE)
ogl("glFrontFace",~GL_CCW)
Schatten-Volumen zeichnen
Stencil-Operation umstellen code
ogl("glStencilOp",~GL_KEEP, ~GL_KEEP, ~GL_DECR)
Face-Culling "umkehren" code
ogl("glFrontFace",~GL_CW)
Schatten Volumen noch einmal zeichnen
Face-Culling wieder "normal" einstellen code
ogl("glFrontFace",~GL_CCW)
Schreiben in den Color-Buffer wieder einschalten code
ogl("glColorMask",~GL_TRUE, ~GL_TRUE, ~GL_TRUE, ~GL_TRUE)
Nur dort zeichnen, wo der Stencil-Buffer ungleich 0 ist code
ogl("glStencilFunc",~GL_NOTEQUAL, 0, $FFFFFFFF)
Ein bildschirmfüllendes, halbtransparentes Quadrat zeichnen code
ogl("glColor4f",0.0, 0.0, 0.0, 0.3)
ogl("glEnable",~GL_BLEND)
ogl("glBlendFunc",~GL_SRC_ALPHA, ~GL_ONE_MINUS_SRC_ALPHA)
ogl("glPushMatrix")
ogl("glLoadIdentity")
ogl("glBegin",~GL_TRIANGLE_STRIP)
ogl("glVertex3f",-0.1f, 0.1f, -0.1f)
ogl("glVertex3f",-0.1f,-0.1f, -0.1f)
ogl("glVertex3f", 0.1f, 0.1f, -0.1f)
ogl("glVertex3f", 0.1f,-0.1f, -0.1f)
ogl("glEnd")
ogl("glPopMatrix")
"Normale" Einstellungen wiederherstellen code
ogl("glDepthMask",~GL_TRUE)
ogl("glDisable",~GL_ST TEST )
|
|
|
| |
|
|
|
Frank Abbing | [quote:6ebf3adeec]Como una OGL-Szene sin embargo como bitmap abgelichtet se...[/quote:6ebf3adeec] Ist no nötig. Den Code Yo aber vorliegen: KompilierenMarcaSeparación |
|
|
| |
|
|
|
Martin Loga | [quote:345f09acf3]Yo blanco, dass OpenGL no Schattenwurf bereitstellt.[/quote:345f09acf3] Es no bastante correcto, lo son OGL Extensions el TextureShadowing unterstützen.
[quote:345f09acf3]Mittels Stencil Buffern debería se prima Echtzeitschatten forma dejar[/quote:345f09acf3] Es correcto, aber bevor ihr en el falsche richtung arbeitet, solltet ihr überlegen welcher Schatten para euch el geeignetere es.
[quote:345f09acf3]In E3 2003 carmack said that he used monsters and demons en doom3 así that you fight a demon or two en each room for some time instead of intering a room and hunt 10 characters because theres no hardware that can render a big no. of characters with all their shadows and detail. Also carmak uses a model format MD5 that have a good trick.it contains 1 million normals and only 5000 vertices .this enables him to use the big no of normals to render the characters with very high detail and use the smaller no of vertices to calculate the shadow volume and collision detection and así on. this is why theres no screenshots for terrains en doom3.it is impossible to render the shadow of the terrain using the shadow volume with such a big no of vertices used en terrains en modern game engines (unreal 2 for example renders 200000 triangles por frame reduces to 10000 using geomipmapping ).[/quote:345f09acf3] Zitat de: [...]
Yo habe incluso erfahrungen con Stencilschatten gemacht y ya de 5.000 a 10.000 Triangles y una jittering de 6 es el alles en weitem no mehr echtzeitfähig.
Wenn ihr TextureShadows nutzt Es el Komplexität el Geometrie völlig unerheblich. Un si el bien implementiert se, habe ihr auch sólo wenige hässliche Kanten (Stichwort Multisampling).
Lo gilt also abzuwägen. Hohe Leistung entonces TextureShadows oder bessere Qualität entonces StencilShadows. Es de paso auch el Grund por qué todos neuen Juegos TextureShadows uso. |
|
|
| |
|
|
|
Frank Abbing | [quote:8e89c3951c][quote:8e89c3951c]Yo blanco, dass OpenGL no Schattenwurf bereitstellt.[/quote:8e89c3951c] Es no bastante correcto, lo son OGL Extensions el TextureShadowing unterstützen.[/quote:8e89c3951c] Sí, de Versión 2.0. Dann zumindest no para ältere Grafikkarten verfügbar.
[quote:8e89c3951c]Yo habe incluso erfahrungen con Stencilschatten gemacht...[/quote:8e89c3951c] Prima, en welcher Lingua? Meinst du, du könntest una simples Ejemplo en Profano hinbekommen? Tal vez una Quad, el una Schatten en el Boden wirft?
[quote:8e89c3951c]...y ya de 5.000 a 10.000 Triangles y una jittering de 6 es el alles en weitem no mehr echtzeitfähig.[/quote:8e89c3951c] Na bien. Echtzeit benötigt uno sí sólo para Juegos. Für grafische Präsentationen con sólo wenigen Objekten debería el aber reichen.
[quote:8e89c3951c]Wenn ihr TextureShadows nutzt Es el Komplexität el Geometrie völlig unerheblich. Un si el bien implementiert se, habe ihr auch sólo wenige hässliche Kanten (Stichwort Multisampling).
Lo gilt also abzuwägen. Hohe Leistung entonces TextureShadows oder bessere Qualität entonces StencilShadows. Es de paso auch el Grund por qué todos neuen Juegos TextureShadows uso.[/quote:8e89c3951c] In mi caso ginge lo me más en Qualität. Wäre wirklich prima, si du veces una Ejemplo bringen könntest.
M.Loga, bastante frisch registriert. Bist du neu hier oder ists una Deckname uno Bekannten? |
|
|
| |
|
|
|
Martin Loga | [quote:14d0152280]Meinst du, du könntest una simples Ejemplo en Profano hinbekommen?[/quote:14d0152280] Tut me leid pero yo habe keinerlei Erfahrung con Profano sólo para Thema OpenGL a se kann Yo helfen.
[quote:14d0152280]In mi caso ginge lo me más en Qualität. Wäre wirklich prima, si du veces una Ejemplo bringen könntest.[/quote:14d0152280] Sehe Yo una, Yo war zuerst de una Spiel ausgegangen (sólo Spielen en el Kopf )
[quote:14d0152280]M.Loga, bastante frisch registriert. Bist du neu hier oder ists una Deckname uno Bekannten?[/quote:14d0152280] Bin neu hier. Kein Bekannter. Yo bin no a Profano aber en el allgemeinen a Computer Grafik interessiert. Bin en eure Página gestoßen, porque de diesem Hilo una Link en una Artikel meiner Webseite verwiesen ha (gamedev.de). |
|
|
| |
|
|
| |
|
- Página 2 - |
|
|
Frank Abbing | [quote:6695799005]Tut me leid pero yo habe keinerlei Erfahrung con Profano sólo para Thema OpenGL a se kann Yo helfen.[/quote:6695799005] Schade... Mit una Assemblercode wäre me aber auch geholfen! Nur C++ kann Yo no...
[quote:6695799005]Bin neu hier. Kein Bekannter. Yo bin no a Profano aber en el allgemeinen a Computer Grafik interessiert. Bin en eure Página gestoßen, porque de diesem Hilo una Link en una Artikel meiner Webseite verwiesen ha (gamedev.de).[/quote:6695799005] Ah, mein Link... Hast wirklich una interessante Página con tollen Infos! Gefällt me correcto bien. Der besagte Stencil-Kurs es auch prima gemacht, sólo el Punto con el Aufspannen uno Schattenvolumen me está a kurz geraten. Zumindest, si uno el Quellcode dazu no correcto versteht. |
|
|
| |
|
|
|
Martin Loga | [quote:52e56be9e8]Mit una Assemblercode wäre me aber auch geholfen! [/quote:52e56be9e8] hmm entonces jag doch el beispiel Programa por el Deassembler
[quote:52e56be9e8]sólo el Punto con el Aufspannen uno Schattenvolumen me está a kurz geraten.[/quote:52e56be9e8] Nun el es en el grunde bastante simplemente. Zunächstmal muss du sicherstellen, dass el Schatten werfende Objeto sólo de Dreiecken besteht, como ansonsten el Programmieraufwand ordentlich zunimmt y el Leistung schwindet. Dann baust du dir una Liste con Nachbarschaften. Jedes Dreieckt ha a a 3 Nachbarn. Das machst du al besten sólo una vez, sofern se deine Geometrie no mochmal ändert. Jetzt kommt el interessante Teil. Usted baust con Ayuda el Nachbarschaften una Liste de Umrisskanten. Das son all Jene Kanten a el una Dreieck angrenzt el a Kamera schaut y eins el de el Camera wegschaut (oder simplemente keins angrenzt). Das machst du encima el Skalarprodukt el Flächennormalen el Einzelnen Dreieckt con el Lichtvektor (una Vektor de Dreieck a Lichtquelle). ¿Es größer 0 schaut el Dreieck weg, es kleiner 0 schaut lo a Lichtquelle. Hast du all esta Kanten extrapolierst du el dazugehörenden Vertices en el ?Fluchtlinien? weg de el Lichtquelle. |
|
|
| |
|
|
|
Frank Abbing | Gracias! Das hilft me sicher ya más. Como werd Todavía una bischen con herumbasteln. Tiempo sehen, si Yo hinbekomme. Wenn sí, schicke Yo dir el código para Einfügen en el Kursus. |
|
|
| |
|
|
|
Jac de Lad | Puedo sí veces Dany fragen, el beherrscht C++, C#, Delphi, Ensamblador...y OpenGL+DirectX. Der kann dir determinado helfen (entweder él bastelt ne DLL oder producido Fuente en Profano oder qué en el Art, vorausgesetzt él kanns!)
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 01.09.2006 ▲ |
|
|
|
|
Frank Abbing | Dany, häh? Gut, entonces aber Por favor, como Assemblercode. Mit C++/# Yo no soy geholfen. |
|
|
| |
|
|
|
Jac de Lad | Daniel Hoffmann. Hatte se antes unos pocos Wochen hier angemeldet y seine Kompressions-DLL con Arithmetic Encoding angekündigt. Leider es él todavía no wirklich weitergekommen, porque él para el Uni aprender muss y ahora una Praktikum macht. Sombrero se en mi Anfrage hin auch todavía no gemeldet, pero yo halte euch en el Laufenden!
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 01.09.2006 ▲ |
|
|
|