Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Hi zusammen,
ich wusste leider nicht so genau, wie ich den Titel nennen soll...
Was 3D-Programmierung mit Purebasic betrifft, habe ich schon einiges an Erfahrung, würde ich zumindest behaupten
Wegen ganz anderen Hobbyaktivitäten (CAD-Konstruktion) beschäftige ich mich aktuell mit Rendering-Lösungen, um CAD-Zeichnungen fotorealistisch darzustellen.
Um hier Beispiele zu nennen: CAD Rays, KeyShot, Blender, POV Render, AppleSeed, Luxcore, usw...
Hier kam mir nun die Frage auf (der Grund des Themas), was ist genau der Unterschied zwischen einer 3D-Szene erstellt in Purebasic und einem der oben genannten Programme? Was mich gedanklich beschäftigt...wenn ich z.B. eine Schraube (gezeichnet in CAD) in hoher Auflösung als Mesh in einer PureBasic-Szene importiere, entsprechend Material/Texturen und Licht setze, dann müsste doch etwas vergleichbares herauskommen, oder nicht?
Als Hauptqualitätsmerkmal einer 3D-Szene, sah ich bisher immer die Anzahl der Dreiecksnetze bzw. die Auflösung des Meshes und eben die Auflösung/Qualität der Texturen.
Oder bin ich hier völlig auf dem Holzweg?
Über eine kleine Diskussion würde ich mich sehr freuen
VG Andi
ich wusste leider nicht so genau, wie ich den Titel nennen soll...
Was 3D-Programmierung mit Purebasic betrifft, habe ich schon einiges an Erfahrung, würde ich zumindest behaupten
Wegen ganz anderen Hobbyaktivitäten (CAD-Konstruktion) beschäftige ich mich aktuell mit Rendering-Lösungen, um CAD-Zeichnungen fotorealistisch darzustellen.
Um hier Beispiele zu nennen: CAD Rays, KeyShot, Blender, POV Render, AppleSeed, Luxcore, usw...
Hier kam mir nun die Frage auf (der Grund des Themas), was ist genau der Unterschied zwischen einer 3D-Szene erstellt in Purebasic und einem der oben genannten Programme? Was mich gedanklich beschäftigt...wenn ich z.B. eine Schraube (gezeichnet in CAD) in hoher Auflösung als Mesh in einer PureBasic-Szene importiere, entsprechend Material/Texturen und Licht setze, dann müsste doch etwas vergleichbares herauskommen, oder nicht?
Als Hauptqualitätsmerkmal einer 3D-Szene, sah ich bisher immer die Anzahl der Dreiecksnetze bzw. die Auflösung des Meshes und eben die Auflösung/Qualität der Texturen.
Oder bin ich hier völlig auf dem Holzweg?
Über eine kleine Diskussion würde ich mich sehr freuen
VG Andi
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Du bist da auf dem richtigen Weg. Was die 3D-Szene selbst anbelangt, gibt es da nicht so viele Unterschiede.
Die Fotorealismus ist der eigentliche Unterschied. Der funktioniert technisch am "einfachsten" durch Raytracing statt durch Rasterung. Man kann zwar mit letzterem sehr nahe ans Raytracing kommen, aber dafür muss man sich sehr gut mit Shadern auskennen und generell sehr auf die Materialien und Texturen achten, die man an ein 3D-Mesh klebt.
Das ist aber insgesamt so ein riesen Thema, da liest du dich besser in vorhandene Erklärungen ein oder schaust dir ein paar erklärende Youtube-Videos dazu an.
Die Fotorealismus ist der eigentliche Unterschied. Der funktioniert technisch am "einfachsten" durch Raytracing statt durch Rasterung. Man kann zwar mit letzterem sehr nahe ans Raytracing kommen, aber dafür muss man sich sehr gut mit Shadern auskennen und generell sehr auf die Materialien und Texturen achten, die man an ein 3D-Mesh klebt.
Das ist aber insgesamt so ein riesen Thema, da liest du dich besser in vorhandene Erklärungen ein oder schaust dir ein paar erklärende Youtube-Videos dazu an.
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Ok, hmm...ich dachte eigentlich immer, dass das Rendering im Ogre bzw. in einer 3D-Engine grundsätzlich immer mit Raytracing funktioniert.
Also simpel ausgedrückt, hat ja jede Fläche ihre Normale, die entsprechend die verschiedenen "Lichtstrahlen" ablenkt/reflektiert.
Da gibts ja glaub ich von PureBasic auch so ein Raytracing-Beispiel mit einer Strahlenverfolgung. Ich dachte immer, alles was man sieht und vor allem wie man es sieht (Farben, Schatten, Spiegelungen, usw.) basiert ausschließlich auf so einer Raytracing-Berechnung.
Nebenbei:
Du weißt nicht zufällig, ob man EXR-Bilddateien in PureBasic als Textur laden, oder? Also laut Referenz gehts nicht, aber vielleicht gibts ja einen Trick
Also simpel ausgedrückt, hat ja jede Fläche ihre Normale, die entsprechend die verschiedenen "Lichtstrahlen" ablenkt/reflektiert.
Da gibts ja glaub ich von PureBasic auch so ein Raytracing-Beispiel mit einer Strahlenverfolgung. Ich dachte immer, alles was man sieht und vor allem wie man es sieht (Farben, Schatten, Spiegelungen, usw.) basiert ausschließlich auf so einer Raytracing-Berechnung.
Nebenbei:
Du weißt nicht zufällig, ob man EXR-Bilddateien in PureBasic als Textur laden, oder? Also laut Referenz gehts nicht, aber vielleicht gibts ja einen Trick
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Nein. Raytracing (oder Pathtracing) heißt, dass "Sehstrahlen" von der Kamera in die Szene geschickt werden und dann an Oberflächen verschiedene Interaktionen erfahren und so dem jeweiligen Bildpixel eine entsprechende Farbe geben. Nur hier sind Sachen wie spiegelnde Oberflächen möglich.
Beim klassischen Rendering (oder Rasterisierung) werden hingegen die Oberflächen von Objekten "stur" auf den Bildschirm gezeichnet. Deren aussehen wird nur von verschiedenen Textur-Maps beeinflusst welche im besten Fall auch noch Lichtquellen berücksichtigen, aber sich keinesfalls gegenseitig beeinflussen (außer im z-Buffer). Wie Nic schrieb müssen hier verschiedene Tricks verwendet werden um Raytracing nachzuahmen (Phong Shading, Ambient Occlusion, Screen Space Reflections, ...)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Ah, ich verstehe...kurz gesagt, beim klassischen Rendering könnte man keine polierte Kugel erzeugen, die zugleich die Umgebung bzw. andere Meshes/Texturen spiegelt oder reflektiert?
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Richtig. Klar gibt's es dort auch Tricks wie zusätzliche Kameras, deren Bilder auf die Textur gerendert werden, oder eben halt das Screen-Space-Reflection, wo zumindest alle "sichtbaren" Objekte auch in der Kugel zu sehen währen, aber eben keine "komplette" Lösung
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Das gibts ja nicht...ich hab schon so viel mit der 3D-Engine und Materialien rumgespielt und mir ist das noch nie aufgefallen
Es macht auf den Bediener schon viel aus, wenn das Licht (ohne Bildinformation) richtig bzw. realwirkend reflektiert wird.
Dann noch abschließend eine Frage...im Jahr 2019 hat Ogre eine sogenannte Voxel Cone Tracing Technik präsentiert, die wohl annähernd an Raytracing herankommt. Ist diese Technik in Purebasic verfügbar?
Hier der Link zu meiner Info: https://www.ogre3d.org/2019/08/05/voxel ... #more-4076
Es macht auf den Bediener schon viel aus, wenn das Licht (ohne Bildinformation) richtig bzw. realwirkend reflektiert wird.
Dann noch abschließend eine Frage...im Jahr 2019 hat Ogre eine sogenannte Voxel Cone Tracing Technik präsentiert, die wohl annähernd an Raytracing herankommt. Ist diese Technik in Purebasic verfügbar?
Hier der Link zu meiner Info: https://www.ogre3d.org/2019/08/05/voxel ... #more-4076
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Aus dem englischen Forum evtl. interessant.
Raytracing Tutorial PB:
https://www.purebasic.fr/english/viewto ... it=Tracing
Sehr einfaches Raymarching Beispiel PB:
https://www.purebasic.fr/english/viewto ... 61#p564161
Sonstiges:
Beste Website für Shader:
https://www.shadertoy.com
Ein Video von BeRo von Farbrausch zu ConeTracing (Demo Scene):
https://www.youtube.com/watch?v=13su6WkDZSw
BeRo's Demo:
https://youtu.be/gY0IAnybDm0?t=536
Edit: Gleiche Demo aber auf BeRo's Kanal:
https://www.youtube.com/watch?v=bA1Cf1bcg_Q
Raytracing Tutorial PB:
https://www.purebasic.fr/english/viewto ... it=Tracing
Sehr einfaches Raymarching Beispiel PB:
https://www.purebasic.fr/english/viewto ... 61#p564161
Sonstiges:
Beste Website für Shader:
https://www.shadertoy.com
Ein Video von BeRo von Farbrausch zu ConeTracing (Demo Scene):
https://www.youtube.com/watch?v=13su6WkDZSw
BeRo's Demo:
https://youtu.be/gY0IAnybDm0?t=536
Edit: Gleiche Demo aber auf BeRo's Kanal:
https://www.youtube.com/watch?v=bA1Cf1bcg_Q
Zuletzt geändert von Mijikai am 14.08.2022 13:16, insgesamt 1-mal geändert.
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Danke für die Links, das guck ich mir heut mal in Ruhe an
Ich habe gerade mal schnell ein paar 3D-Beispiele von PureBasic durchgeklickt. Bei zwei Stück davon "CubeMapping.pb" und "Material2.pb" sind Spiegelungen der Umgebung sichtbar.
Wird hier die Skybox reflektiert?
Was wird hier genau am Torus reflektiert? Die Textur bewegt sich nicht exakt mit dem Torus mit. Es wurde das Attribut "EnvironmentMap" auf das Material gelegt.
Ich habe gerade mal schnell ein paar 3D-Beispiele von PureBasic durchgeklickt. Bei zwei Stück davon "CubeMapping.pb" und "Material2.pb" sind Spiegelungen der Umgebung sichtbar.
Wird hier die Skybox reflektiert?
Was wird hier genau am Torus reflektiert? Die Textur bewegt sich nicht exakt mit dem Torus mit. Es wurde das Attribut "EnvironmentMap" auf das Material gelegt.
Re: Unterschied Rendering in Ogre/Purebasic zu "fotorealistischen" Programmen
Hi Leute,
ich habe aus dem CubeMap-Material was kleines gebastelt, um es mal in höherer Qualität zu betrachten.
Dazu ein kleines Video:
https://youtu.be/jL25lmjcrQ0
Das sind ja eigentlich recht gute Reflexionen
Ich glaube, damit lässt sich schon ordentlich was machen.
Wahrscheinlich ist das jetzt einer dieser Tricks des klassischen Renderings, oder?
Hättet ihr eine Idee, wie man die Umgebung ohne Skybox auf die Entitys bringt? So eine Art unsichtbare Skybox? Oder evtl. eine halbkreisförmige Bildleinwand die man immer hinter die Kamera setzt?
Ich würde gerne eine Umgebung auf die Modelle abbilden/reflektieren können, aber dennoch keine sichtbare Umgebung haben (z.B. grauer Hintergrund).
ich habe aus dem CubeMap-Material was kleines gebastelt, um es mal in höherer Qualität zu betrachten.
Dazu ein kleines Video:
https://youtu.be/jL25lmjcrQ0
Das sind ja eigentlich recht gute Reflexionen
Ich glaube, damit lässt sich schon ordentlich was machen.
Wahrscheinlich ist das jetzt einer dieser Tricks des klassischen Renderings, oder?
Hättet ihr eine Idee, wie man die Umgebung ohne Skybox auf die Entitys bringt? So eine Art unsichtbare Skybox? Oder evtl. eine halbkreisförmige Bildleinwand die man immer hinter die Kamera setzt?
Ich würde gerne eine Umgebung auf die Modelle abbilden/reflektieren können, aber dennoch keine sichtbare Umgebung haben (z.B. grauer Hintergrund).