Fake Scheinwerfer für ein Fahrzeug
Übersicht

mpreuBetreff: Fake Scheinwerfer für ein Fahrzeug |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schaut das ungefähr so aus:
![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
B3D unterstützt nicht keine eigenen Shader, DirectX 7 kennt einfach keine.
Frei programmierbare GPUs kamen erst lange nach DirectX7 auf. |
||
Kruemelator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group