Fake Scheinwerfer für ein Fahrzeug

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

mpreu

Betreff: Fake Scheinwerfer für ein Fahrzeug

BeitragSo, Jan 19, 2014 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte für ein Fahrzeug ein Scheinwerferlicht coden, dafür wollte ich ein mesh welches dem Licht in der Form gleicht für das Fahrzeug setzen und dieses sehr transparent.
Dazu dachte ich mir dann ein stinknormales Spotlight und fertig ist.

Leider funktioniert das nicht wirklich, da das Licht extrem ruckelt wenn es recht klein ist.
Vielleicht liegts auch irgendwie an den Werten von Range und Höhe.

Könnte mir da jemand einen Tip geben?
Für eine Autosimulation welche auch Nachtfahrten enthält, wäre das schon sinnvoll.

DAK

BeitragSo, Jan 19, 2014 23:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Beschreibe "ruckelt". Was ruckelt? Das Scheinwerfer-Mesh, das Licht, oder das ganze Bild? Hast du ein Beispiel, woran man das sehen könnte?

Wie koordinierst du die Bewegung von Auto, Scheinwerfer-Mesh und Licht?
Gewinner der 6. und der 68. BlitzCodeCompo
 

mpreu

BeitragMo, Jan 20, 2014 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe ein terrain mittels T.Ed erstellt, geladen und zu Testzwecken wollte ich lediglich schonmal per Cursortasten das Licht bewegen.
Wenn es mit großer Range großflächig strahlt, sieht es auch recht weich an den Kanten aus, jedoch, wenn ich die Range kleiner stelle "springt" das Licht scheinbar von Poly zu Poly und das sehr ruckartig.

Code kann ich grad keinen zeigen, da ich umgezogen bin und mein PC noch nicht steht und ich nur am Lappi sitze.

Jan_

Ehemaliger Admin

BeitragMo, Jan 20, 2014 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist normal, weil das licht einfach nur eine erhellung der Punbte ist, wenn die normalen richtig gesetzt sind, kannste da nicht viel machen. Zeigst du uns mal ein Bild, wenn dein Rechner wieder in reichweite ist?!

Lg. Jan_
between angels and insects

DAK

BeitragMo, Jan 20, 2014 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Schaut das ungefähr so aus:
user posted image

Wenn ja, dann liegt das daran, dass B3D einfach ein schlechtes Shader-Modell verwendet. Kann man nicht viel machen. Ich habe aber eigentlich in Erinnerung gehabt, dass das Licht-Modell in B3D besser war als das, kann mich aber auch irren.
Gewinner der 6. und der 68. BlitzCodeCompo
 

mpreu

BeitragMo, Jan 20, 2014 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja genauso sieht das aus.
Aber auch nur wenn der Range Wert klein ist.
Gibts da noch eine andere Möglichkeit um sowas hinzubekommen?

Mein PC steht inzwischen, aber ich muss noch den Router ins Wohnzimmer verlegen da ich an dem PC kein WLAN habe und möchte.

Aber DAK´s Bild entspricht schon völlig dem Verhalten.

Dann müsste ich alternativ ja ein Mesh mit wesentlich mehr polys haben um den Effekt zu umgehen, aber das ist ja nicht wirklich eine Lösung.
Es muss doch irgendwie möglich sein.

DAK

BeitragDi, Jan 21, 2014 0:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hättest du Zugriff auf die Shader wäre es nicht schwer. Müsste man einfach den Shader durch einen schöneren ersetzen. Leider geht das in Blitz3D nicht.
Das einzige, was ich gefunden habe ist der Befehl EntityFX, und dort kann man nur auf das noch schlechtere Flat Shading umsteigen.

Was aber eventuell ginge wäre das Licht wegzunehmen und dafür dein Scheinwerfer-Mesh mit EntityFX auf leuchtend zu setzen. Ich hab den Befehl nie ausprobiert, weiß also nicht, wie gut es funktioniert, aber probier's mal.

Alles was sonst noch übrig bleibt sind hochauflösendere Meshes oder eine neue Programmiersprache.

Falls es dich interessiert, hier gibt es mehr Infos dazu.

Edit: Da Gouraud-Shading besonders mit Glanzpunkten Probleme macht, könnte es eventuell gehen, die Glanzpunkte bei Objekten mit besonders großen Polygonen mittels EntityShininess zu entfernen (shininess=0).
Aber auch dann sollte ein Polygon nicht größer als ein Viertel des Lichbereiches sein, da es sonst nicht schön ausgeleuchtet wird.
Gewinner der 6. und der 68. BlitzCodeCompo
  • Zuletzt bearbeitet von DAK am Di, Jan 21, 2014 0:32, insgesamt einmal bearbeitet
 

mpreu

BeitragDi, Jan 21, 2014 0:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich ja mit einigen Sprachen zugange bin, werd ich das wohl mal via Shader probieren.
Muss mich da aber erstmal mit dem handling vertraut machen.

Dachte nur es ginge irgendwie ohne großem Aufwand.

DAK

BeitragDi, Jan 21, 2014 0:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Die meisten 3D-Engines die Shader erlauben liefern die wichtigsten Shader gleich mit, nur die in B3D einzubinden wird schon eher schwer (B3D unterstützt keine eigenen Shader).

Bei reinen Beleuchtungsshaden (also ohne coolen Effekten wie Fur-Shader oder so) gibts im Grunde schnellere und schönere. B3D verwendet hald scheinbar den Gouraud-Shader, der einer der schnellsten ist, aber echt nicht so schön. Schöner wären z.B. Lambert oder Phong.
Gewinner der 6. und der 68. BlitzCodeCompo

BtbN

BeitragDi, Jan 21, 2014 10:04
Antworten mit Zitat
Benutzer-Profile anzeigen
B3D unterstützt nicht keine eigenen Shader, DirectX 7 kennt einfach keine.
Frei programmierbare GPUs kamen erst lange nach DirectX7 auf.
 

Kruemelator

BeitragDi, Jan 21, 2014 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Shader bei Direct3D gibt es seit Direct3D 8. Erst ab Direct3D 9 gibt es einheitliche Shader für alle Grafikkarten die diese Version unterstützen, vorher musste man je nach Grafikkarte/Marke eigene Shader schreiben.

Bis Direct3D 9 gab es nur Pixel und Vertex-Shader. Ab Direct3D 10 gibt es noch den Geometry Shader, Direct3D 11 hat noch ein paar mehr. Außerdem gibt ab Direct3D 10 Unified Shader, das heißt dass dieselbe Hardware jeden Shader Typen bearbeitet, egal ob Pixel, Vertex oder sonst irgendeinen Shader.

Um Per-Pixel-Berechnungen in Blitz3D vorzunehmen hat man nur die TextureBlend-Effekte zur Verfügung sowie Cubemaps.

Hier ein gutes Tutorial über Lighting. Die ersten Seiten erklären es ganz gut.
http://www.bencloward.com/tuto...aps1.shtml

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group