Schatten mit B3D
Übersicht

ZUCHINIBetreff: Schatten mit B3D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, ich versuche mich gerade in der 3D Programmierung mit B3D ![]() Was ich mal so allgemein wissen will. Welche möglichkeiten gibt es Schatten zu erstellen? Wie macht man Lightmaps? Wie wird sowas berchnet. Würde mich mal interessieren. cu ZUCHINI |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
in Blitz3D selber intern garkeine
Musst du selber programmieren. Lightmaps werden dabei über das sogenannte Raytracing berechnet ( in ihrer einfachsten Form zumindest ). Aber dafür nimmt man normalerweise darauf ausgelegte Programme, da das relativ schwer is sonst. Sie sind jedoch auf statische Dinge beschränkt. Also sich bewegende Objekte kann man nicht mittels Lightmaps Schatten werfen lassen. ( Gile[s] sehr empfehlenswert ) Für dynamische Schatten kenne ich nur Sswifts SchattenSystem welches ebenfalls net umsonst ist. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie geht man bei einer Lightmap vor?
Man hat die Position des Lichts und ein Objekt das bestrahl wird. Und ich brauche eine Wand wo der Schatten projeziert wird. Ich schicke jetzt einen Strahl los. Dieser trifft oder trifft das Objekt nicht. Je nach dem wird ein Pixel auf der Wand gezeichnet oder nicht. Funktioniert das in etwa so? Da hätte ich aber eine Frage zum Strahl. Den Strahl kann man dann doch nicht in alle Richtungen schicken. Also ich müsste einen Kegel definieren in dem es "Licht" gibt. PS: Es geht jetzt nicht um konkrete Lösungen. Ich möchte nur eine Diskussion anregen wie man solche Sachen implementieren könnte. cu ZUCHINI |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dazu gibt viele Seiten im Netz die sich mit Raytracing beschäftigen, da es eine sehr komplexe Materie ist.
Das übersteigt den Sinn dieses Boards hier bei weitem finde ich. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
ChrisAttack |
![]() Antworten mit Zitat ![]() |
---|---|---|
hatt ich auch mal: aber mit konkreten anworten ![]() https://www.blitzforum.de/viewtopic.php?t=2649 |
||
B3D
MSVC++ DX9SDK |
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dreamora hat Folgendes geschrieben: dazu gibt viele Seiten im Netz die sich mit Raytracing beschäftigen, da es eine sehr komplexe Materie ist.
Das übersteigt den Sinn dieses Boards hier bei weitem finde ich. Finde ich nicht ![]() Natürlich ist es ein komplexes Thema, aber ich bin mir sicher das es hier Leute gibt die sich damit auskennen. Und noch mehr Leute die nicht nur Tutorials lesen wollen sondern auch mal eine Frage dazu stellen und auch eine Antwort bekommen. ![]() |
||
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das TerraShade-Tutorial geht einen sehr interessanten Weg. Das ganze ist auch nicht schwer nachzuprogrammieren.
Was glaubt ihr kann man das selbe System für Räume benutzen. Eigentlich müsste es doch gehen. |
||
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, wird dann schwirig werden mit dem UV-Koordinaten-ausrechnen.
norc hatte mal ein bsp auf bb.com gepostet, dass eine figurauf einem terrain rumwandern lässt... der schatten passt sich dem terrain an. das prinzip ist recht einfach: unter dem objekt wird eine kleine plane (am besten manuell) erstellt (also keine plane mit Createplane(), sondern eine begrenzte), die in mehrere polygone unterteilt ist. darauf wird eine texture gespannt, die shadowmap. diese wird wie in dem sample von TerraShade (denk ich mir mal, dass die das da auch benutzen ![]() nun werden alle vertices mit linepick an der terrainoberfläche positioniert. abhängig von der unterteilung musste die vertcies dann etwas höher setzen, je weniger polygone die fkäche hat, desto höher die vertcies, da es sonst zu überlappungen kommen kann.... das wär denk ich mal die beste variante für indoor |
||
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Na also da sammeln sich doch einige Ideen ![]() Das hört sich auch gut an. Eine gute Idee den Schatten auf eine Plane und danach auf das Terrain zu mappen. Doch bei Indoor sehe ich das Problem mit der Überstehenden Plane Man müsste die Plan abschneiden und auf den Boden mappen. Oder nicht? |
||
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, deswegen ja das ausrichten der vertices der plane mit linepick ![]() du musst am besten von der lichtquelle aus in die richtung die vertices ausrichten. |
||
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mich ein wenig im Internet rumgeschaut.
Dabei bin ich auf mehrere Methoden gestossen. Shadow Matrix ist eine Möglichkeit. Doch weil man Berechnungen über die Eben braucht kann das beim Terrain problematisch werden. Interessant ist auch Shadow-Mapping. Ich habe nur nicht ganz verstanden wie das genau funktioniert. Als erstes wird von der Lichtquelle aus nur in den Z-Buffer gerendert. Danach rendert man von der Kameraposition. Und vergleicht beide Z-Buffer werde. Ich konnt nur nicht erfahren wie so ein Vergleich aussehen soll. Ich habe versucht das in B3D zu implementieren. Doch da gibt es das Problem die Informationen aus dem Z-Buffer zu lesen. Obwohl das bei DX sowieso ein Problem darstellt. Weil der DX-Standard nicht vorschreibt in welchem Format die Grafikkarte den Z-Buffer verwendet. Es kann also sein das die Grafikkarte intern ein gaz anderes Z-Bufferformat verwendet als es nach aussen hin aussieht. ![]() Auf jedenfall finde ich ist es ein sehr spannendes Thema ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du hast keinen ZBuffer zur verfügung in Blitz3D
Alle Rendering methoden die ZBuffer nutzen fallen deshalb mit Blitz3D weg, also nen grossteil aller möglichkeiten da jede Effiziente Schattenmethode ZBuffer oder sogar StencilBuffer nutzt ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dreamora hat Folgendes geschrieben: du hast keinen ZBuffer zur verfügung in Blitz3D
CAMERACLSMODE Kamera, Farbe, ZBuffer Man kann es so einstellen das man nur den Farbbuffer löschen kann. Der Z-Buffer bleibt erhalten. Kann man damit nichts machen? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm
Wäre eine Möglichkeit, die Frage wäre dann nur wie genau weiter nutzen. Allerdings fällt auf jeden Fall die möglichkeit des einlesens und schreiben darauf weg, da man ihn für SetBuffer nicht zur verfügung hat. Das es geht damit is auf jeden Fall klar, denn sonst würde Sswifts schattensystem garnet gehen ![]() [EDIT] es gibt ja verschiedene codebeispiele wo man die Cam an die Lichtposition setzt und von da aus ne "shadowmap" generiert ... allerdings habe ich nie wirklich verstanden wie das geht bzw. funktioniert ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja ich auch nicht ![]() ![]() |
||
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Echt schade, das das mit dem Schatten so schwer ist. Ich meine guten Schatten, der sich eben der Umgebung anpasst und auch ein wirklich Bild von einem selbst oder sonst ein bewegtes Objekt. Wenn es da mal ein günstiges Tool gibt für B3D, dann werde ich mir es sofort zulegen. | ||
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also Tool mit denen man Lightmaps erstellen kann gibt es ja schon. Die Schatten sind jedoch statisch.
Alles andere mit B3D geht auf Kosten der CPU. Leider gibt es keine Möglichkeit auf den StencilBuffer zuzugreifen. Für wirklich geile Schatten braucht man das einfach. Damit ist auch möglich das Objekte einen Schatten auf sich selbst werfen können. Das ganze sieht dann noch realistischer aus. Warten wir mal auf BlitzMax. Mal sehen was der alles für Möglichkeiten bietet. Trotzdem ist es gut mal die Grundlagen zu lernen. So kann man später schneller in die Materie eintauchen. ![]() http://www.ce.chalmers.se/staf...knight.jpg |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
StencilBuffer haben nur dummerweise den Hang auch fehlerhaftes zu programmieren.
Kenne auf anheib keine OpenSource 3D engines die den Selbstschattenwurf gescheit hinbekommen. Weder die NeoEngine, Irrlicht noch die anderen die ich probiert hab bekommens hin. auch die hauptkonkurrenz von Blitz3D, DarkBasic Pro bekommts net gebacken ( speziell wenn man noch Bumpmap und anderes nutzt steigt die schattenberechnung total aus ) Für Blitz3D gibts ja Sswifts ShadowSystem, das erlaubt echtzeitschatten. Nur kann ich nicht sagen, wie es da genau mit der Performance in ner realen Szene ausschaut, da das Demo mehr als nur unbrauchbar ist, da es gerade ma 2 Cubes als Untergrund hat. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi !
Hier mal von der Swift Shadow Engine ein Pic. Die Version die ich mir eventuell kaufen werde, kostet 100 Dollar. Mal sehen. Kann man ja in BB jetzt einbinden, so wie die Partikel Engine von X-Pressive. ![]() |
||
ZUCHINI |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was meinst du mit - Kann man ja in BB jetzt einbinden -. Die sind doch in B3D Programmiert, oder nicht?
Und mit welcher Technik wurden die Schatten auf dem Screenshot gemacht. Weiss das einer ? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group