Software-OK
≡... News | ... Home | ... FAQ | Impressum | Kontakt | Gelistet bei | Danke |

  
HOME ► Faq ► FAQ - Windows-CPP-und-C ► ««« »»»

3D C++ C Schatten in OpenGL und DirectX!


Eine der aufwendigsten Aufgaben bei 3D Programierung in C++ C sind Schatten in OpenGL und DirectX!



Schatten (Shadow) werden oft bei der Entwicklung mit Schattierung (Shading) verwechselt, obwohl Sie zusammen für den Eindruck der 3D Landschaft verantwortlich sind. Ist die Schattierung jedoch deutlich einfacher als komplexe Schatten-Berechnung und die Entscheidung, ob Mapping oder Echtzeit Schatten-Berechnung, sowie die Frage wann macht was Sinn! Hier in diesem FAQ werde ich Informationen zum Thema 3D Schatten zusammenfassen und erweitern!

Inhalt:

1.) ... Der Schatten und Schattierung Unterschied Shadow vs Shadow!
2.) ... Beispiel 1 Schatten mit getestetem Quell-Code!
3.) ... Das klassische Shadow Beispiel von Standard OpenGL!
..... weitere folgen
X.) ... Wozu diese Seite und weitere Links und Infos zu Schatten und Schattierung!



Siehe auch: ► Was sind Schattierungen?

1.) Der Schatten und Schattierung Unterschied Shadow vs Shadow!

Links im Bild die Schattierung! ( ... siehe Bild-1 Punkt 1 und 2)

Rechts im Bild der Schatten-Wurf ( ... siehe Bild-1 Punkt 3 und 4)

PS: Meiner Meinung nach sind Schattierungen das viel wichtigere Instrument der 3D Gestaltung als Schatten, zumal es in virtuellen Welten eigentlich keine Schatten gibt ;-)  Man kann jedoch recht gute Ergebnis erreichen wenn man die Realität nicht zu Toppen versucht!


(Bild-1) Schatten vs Schattierung
Schatten vs Schattierung


-
▲ Zum Anfang ▲


2.) Beispiel 1 Schattierung mit getestetem Quell-Code!


Das Beispiel Links im Bild: ►  OpenGL 2.1 - GLSL shadow cube mapping
Das Schatten-Beispiel Rechts: ►► OpenGL 2.1 - Fast realistic soft penumbra shadows


Ein Weiteres vom gleichen Autor: ►► Software shadow mapping << Recht interessant da Software ;-)

Und: Terrain, BSP-Baum, Frustum-Culling, Sortierung, Shadow-Mapping

Info:

Alle drei Projekte habe ich getestet, man kann es mit jedem Visual Studio 2008, 2017, ... compilieren  (erstellen), ja sogar mit dem alten VC 6.0. Das "fast realistic .. " stürzt ab, im Quellcode "Pause = true;" setzen! Die Quellcodes sind ganz unten auf der jeweiligen Seite downloadbar!



(Bild-2) 3D C++ C Schatten in OpenGL!
3D C++ C Schatten in OpenGL!

-
▲ Zum Anfang ▲


3.) Das klassische Shadow Beispiel von OpenGL!



1. Drehwürfel mit dynamischen Schatten (läuft auch im Farbindexmodus!). 

Seite ►►OpenGL - Examples  Quellcode: ► scube.c

2. Das Klassische, springender Dino mit Schatten als Beispiel 

Seite: ►... opengl.org ...archives ... examples/examples.html Quellcode: ►► dinoshade.c

3. Ein weiteres mit *.obj Dateien und Schatten! Weiche Schatten in Echtzeit. Drücken mit der 'h' Taste, es erscheint ein Hilfemenü. Ziehen Sie die mittlere Maustaste, um die Szene zu drehen.

Download: ► shadow.zip Seite: ... www.opengl.org/archives/resources/code/samples/more_samples/



(Bild-3) Klassisches Schatten Beispiele mit OpenGL!
Klassisch Schatten Beispiele mit OpenGL!

-
▲ Zum Anfang ▲




X.) Wozu diese Seite und weitere Links und Infos zu Schatten und Schattierung!



Die Seite wird regelmäßig erweitert! Es gibt im Internet viele, die hier ausgewählten sind aber geeignet um es zu verstehen und haben wenig Ballast! Es ist zumeist so, dass man etliche MB von Quellcode runterlädt und es ist schlecht geeignet um den Sinn, die Funktionsweise, ... zu verstehen!
  


►► OpenGL - Warum Schatten?
►► OpenGL - Was sind Shader?



►► .. learnopengl.com/Advanced-Lighting/Shadows/Shadow-Mapping
►► ... Super Mario 64 << paar Effekte und viel Quellcode als ein Beispiel bedingt nutzbar! 
Wird auch erweitert!

Random number generator: 
►► https://www.shadertoy.com/view/tsf3Dn
►► https://www.shadertoy.com/view/4slGD4
►► https://www.shadertoy.com/view/4ttSWf!

►► https://wiki.delphigl.com/index.php/Shadersammlung!

(Bild-4) Shader in OpenGL GLS
Shader  in OpenGL GLS



Eine beliebte Methode zum Generieren einer benutzerdefinierten Textur für eine Höhenkarte besteht darin, Teile anderer "Quell" -Texturen so zu kombinieren, dass die resultierende Textur direkt den Merkmalen der Höhenkarte zugeordnet wird. Zum Beispiel könnte eine Schneetextur für die Gipfel von Bergen verwendet werden, eine Felsstruktur für Höhen, die nicht mit Schnee bedeckt sind, eine Grasstruktur für Gebiete unterhalb der Berge, eine Sandstruktur für Gebiete mit niedrigerem Strand und eine Wasserstruktur für die tiefsten Punkte auf der Karte. In diesem Artikel werden zwei Möglichkeiten zum Kombinieren von Texturen, Schneiden und Mischen betrachtet. Schneiden Sie Abschnitte von Texturen ab und nähen Sie sie zusammen, um eine neue Textur zu erhalten. Das Mischen, eine Verbesserung des Schneidens, mischt die Texturen zusammen, indem die Farbwerte der Abschnitte basierend auf den Höhenkartendaten gewichtet werden.

http://jeff.bagu.org/articles/ptg4heightmaps.html#


Auch interesant:
https://entwickler.de/online/development/opengl-landschaftsgestaltung-mit-height-maps-co-114982.html

Und:
http://shdr.bkcore.com


(Bild-5) 3D C++ C Schatten in OpenGL und DirectX!
3D C++ C Schatten in OpenGL und DirectX!

-
▲ Zum Anfang ▲


-
▲ Zum Anfang ▲



4.) Hier noch ein Programm mit Quelcode!





Dieses Programm zeigt eine einfache Szene, die von einem einzigen Licht beleuchtet wird. Die Szene wird zunächst aus der Sicht des Lichts gerendert und die Tiefenwerte in eine Textur geladen. Diese Textur wird dann aus der Sicht des Auges auf die Szene projiziert, und ein Vergleich mit der Entfernung vom Licht wird durchgeführt. Dies bestimmt abgeschattete Bereiche.
 
Diese Demo implementiert 8-Bit-„Dual Texture“-Shadow-Mapping und eine 16-Bit-Version mit Registerkombinatoren. 24-Bit-Hardware-Shadow-Mapping wird ebenfalls demonstriert.

►►► http://www.paulsprojects.net/opengl/shadowmap/shadowmap.html!

NVIDIA
►► https://developer.nvidia.com/sites/all/modules/custom/gpugems/books/GPUGems/gpugems_ch12.html
►► https://developer.nvidia.com/sites/all/modules/custom/gpugems/books/GPUGems/gpugems_ch09.html

Infos:
Schatten-Volumen sind nicht für alle Szenen ideal. Die Technik beinhaltet die Konstruktion eines 3D-Volumens, das alle von einem Objekt geworfenen Schatten umschließt. Dieses Volumen ist aus dem Netz des Schatten Werfers konstruiert; Einige Schatten-Werfer haben jedoch kein Netz, das ihre Form genau darstellt. Beispiele hierfür sind eine Werbetafel, ein Partikel System oder ein mit einer Alpha-Matte Texturiertes Netz (z. B. ein Baumblatt). Diese erzeugen Schatten basierend auf ihren tatsächlichen Maschen, die nicht mit dem tatsächlichen Erscheinungsbild der Objekte übereinstimmen. Beispielsweise wirft eine Rauchwolke auf einer Werbetafel einen rechteckigen Schatten.


(Bild-6) Schatten in OpenGL im SoftwareOK-3D Projekt
Schatten in OpenGL im SoftwareOK-3D Projekt

-
▲ Zum Anfang ▲




FAQ 31: Aktualisiert am: 9 April 2022 18:50 Windows
Windows-CPP-und-C

Unterschied zwischen time(0) und clock() in CPP und C?


Der wesentliche Unterschied zwischen time und clock in CPP und C ist das was gezählt wird Bei time sind es Sekunden ab 1.1.1970 und bei clock Millisekunden
Windows-CPP-und-C

WAS ist MFC?


MFC steht für Microsoft Foundation-Klassenbibliothek MFC ist als C ++ objektorientierte Bibliothek zum Entwickeln von Desktop-Anwendungen für MS Windows
Windows-CPP-und-C

Unterschiede GetWindowsDirectory und GetSystemDirectory?


Der Unterschied von GetWindowsDirectory und GetSystemDirectory ist schnell erklärt und verstanden Der GetSystemDirectory und GetWindowsDirectory sind ähnlich
Windows-CPP-und-C

Dark Theme in Win32 Anwendungen mit Menu und Titelleiste!


Nicht ganz einfach ist es Dark Theme in Win32 Anwendungen mit Menu und Titelleiste für Windows 11 & 10 richtig zu aktivieren und zu verwenden Hier habe
Windows-CPP-und-C

Was ist Perlin-Noise für eine Funktion?


Irgendwann ist man beim Programmieren konfrontiert mit dem Begriff Perlin oder Noise oder Perlin-Noise und fragt sich was für eine Funktion ist das und wofür
Windows-CPP-und-C

Visual Studio 2022 braucht ewig und ist langsam, warum?


Es ist auf alter Hardware schwer mit Visual Studio 2022 zu arbeiten, es braucht hier lange und ist sehr langsam, darum benötigt man die neueste Hardware

»»

  Meine Frage ist leider nicht dabei
Gestellte Fragen zu dieser Antwort:
Keywords: windows, schatten, opengl, directx, eine, aufwendigsten, aufgaben, programierung, shadow, entwicklung, schattierung, Fragen, Antworten, Software




    

  + Freeware
  + Ordnung am PC
  + Dateiverwaltung
  + Automatisierung
  + Office Tools
  + PC-Test-Tools
  + Deko und Spaß
  + Desktop-Uhren

  + SoftwareOK Pages
  + Micro Staff
  + Freeware-1
  + Freeware-2
  + Freeware-3
  + FAQ
  + Downloads

  + Top
  + Desktop-OK
  + The Quad Explorer
  + Don't Sleep
  + Win-Scan-2-PDF
  + Quick-Text-Past
  + Print Folder Tree
  + Find Same Images
  + Experience-Index-OK
  + Font-View-OK


  + Freeware
  + ColorConsole
  + LauschAngriff
  + DesktopClock3D
  + DesktopImages3D
  + TheAeroClock
  + PointerStick
  + DesktopSnowOK
  + ProcessKO
  + FingerWeg
  + PAD-s

Partnerseite:

Home | Danke | Kontakt | Link | FAQ | Windows 2021 | Windows 2015 | eBlog | English-AV | Impressum | Translate | PayPal | PAD-s

 © 2023 by Nenad Hrg softwareok.de • softwareok.de • softwareok.com • softwareok.eu
0.077


► Wie finden ich den Ordner Hintergrundbilder in Windows 10/11? ◄

► Verwenden Sie die Windows-Lupe, um Teile des Bildschirms zu vergrößern? ◄

► Was wäre wenn jeder eine GPU im Kopf hätte! ◄

Durch die Nutzung meiner Webseite erklären Sie sich damit einverstanden, dass diese Cookies verwenden. mehr Infos & Datenschutz
....