Schatten mit B3D

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

ZUCHINI

Betreff: Schatten mit B3D

BeitragMi, Apr 21, 2004 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich versuche mich gerade in der 3D Programmierung mit B3D Smile

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

BeitragMi, Apr 21, 2004 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Apr 21, 2004 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Apr 21, 2004 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Apr 21, 2004 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
hatt ich auch mal: aber mit konkreten anworten Wink

https://www.blitzforum.de/viewtopic.php?t=2649
B3D
MSVC++
DX9SDK
 

ZUCHINI

BeitragMi, Apr 21, 2004 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Confused Währe doch mal was anderes als nur die Standardfragen zu beantworten.
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. Very Happy
 

ZUCHINI

BeitragMi, Apr 21, 2004 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Apr 21, 2004 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink). also einfach in die texture rendern.

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

BeitragMi, Apr 21, 2004 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Na also da sammeln sich doch einige Ideen Very Happy

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

user posted image

Man müsste die Plan abschneiden und auf den Boden mappen.

Oder nicht?
 

INpac

BeitragMi, Apr 21, 2004 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, deswegen ja das ausrichten der vertices der plane mit linepick Smile

du musst am besten von der lichtquelle aus in die richtung die vertices ausrichten.
 

ZUCHINI

BeitragMi, Apr 21, 2004 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

Crying or Very sad

Auf jedenfall finde ich ist es ein sehr spannendes Thema Very Happy
 

Dreamora

BeitragMi, Apr 21, 2004 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Apr 21, 2004 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Apr 21, 2004 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Smile

[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 Sad
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

ZUCHINI

BeitragMi, Apr 21, 2004 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja ich auch nicht Very Happy ich bin gerade dabei mich da einzuarbeiten. Rolling Eyes
 

blitzblaster

BeitragMi, Apr 21, 2004 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Apr 21, 2004 23:35
Antworten mit Zitat
Benutzer-Profile anzeigen
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. Very Happy

http://www.ce.chalmers.se/staf...knight.jpg
 

Dreamora

BeitragDo, Apr 22, 2004 0:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Apr 22, 2004 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

user posted image
 

ZUCHINI

BeitragDo, Apr 22, 2004 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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 ?

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group