Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

41

31.01.2011, 11:42

Generell nein, allerdings im Bezug zu den von dir aufgeführten Beispielen schon. Die gesamte Geometrie dort besteht nicht aus einfachen Körpern oder Polygonmengen sondern aus viel abstrakteren Konstrukten, du hast dir ja sicher mal angesehen wie diese denn entstehen.

Distance Fields ok, aber die Beispiele von dir sind eher weniger geeignet für das was er vorhat. (Ich kann hier nur raten was er vorhat.)

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

42

31.01.2011, 11:52

Also wenns nur Kugeln kann, ist damit evtl. nicht wirklich Grossartiges vorzuhaben. Wieso also nicht auf andere Techniken hinweisen, die mehr rausholen?

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

43

31.01.2011, 11:55

Kannst du, ich habe Distance Fields ja nicht schlecht gemacht, nur erwähnt dass deine Beispiele nicht die besten sind um einen generischen Raytracer/Marcher aufzubauen.

Distance Fields sind toll, was anderes sage ich auch nicht.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

44

31.01.2011, 12:16

Wie gesagt, wirklich was 'damit vor haben' hatte ich eig. nicht im Sinne. Ich hab den an'nem Samstag mal schnell geschrieben (die Codeteile der Kollisions-Erkennung für Line/Kugel aus meiner 3D Engine entnommen) nur zum Testen, wie weit die Grafikkarten mitlerweile sind um damit realtime raytracing betreiben zu können.
Dem Anschein nach, sind sie schon lange bereit dazu :D

Neue Techniken hör ich mir gerne an, aber DerMark bereits erwähnte, ist diese "DistanceField" Methode für diesen RayTracer wohl eher weniger geeignet.

Ich will mal versuchen das klassische kachelfeld mit rein zu bringen, damit da nicht nur Kugeln drin sind. Aber ansonsten handelt es sich hier bei nur um eine kleine Spielerei ;)
Oder irritiert euch das, dass ich es unter "Projekte" veröffentlich habe?

Aber noch mal kurz zu dem Reflextionen Problem: Wenn ihr die "do ... while" Schleife im Fragment Shader wie folgt umschreibt, sollte der Fehler behoben sein und der Grafik Treiber diese Schleife nicht mehr weg optimieren:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
// Von ...
do
{
    /* ... */
}
while (++ForksIndex < Forks)

// ... Nach
while (ForksIndex++ < Forks)
{
    /* ... */
}


mfg Lukas

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

45

31.01.2011, 12:25

Neue Techniken hör ich mir gerne an, aber DerMark bereits erwähnte, ist diese "DistanceField" Methode für diesen RayTracer wohl eher weniger geeignet.
Warum sollte die Linie-mit-Kugel-formel zu berechnen des Schnittpunktes geeigneter sein als irgendeine andere Formel, die auch nur einen Schnittpunkt berechet? Was ist an deinem Raytracer so besonders, das er die Schnittpunkte nicht mit jeder beliebigen Formel berechnen kann? Werde aus eurer Argumentation nicht schlau...

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

46

31.01.2011, 12:42

Welcher Argumentation? Ich habe nur gesagt das die Beispiele von dir nicht geeignet sind, das war alles. Gegen DistanceFields habe ich wie gesagt nichts.

Als einzigen Argumentationspunkt könnte man anführen das es eher Raymarching und kein Raycasting ist, wie er ja, so wie es der Topictitel verdeutlicht, benutzen möchte.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

47

31.01.2011, 21:49

Hier mal ne kleien Aktuallisierung.

Jetzt sollten bei jedem die Reflexionen zu sehen sein. Außerdem gibt's jetzt ne texturierte Plane am Boden ;)

mfg Lukas

48

31.01.2011, 22:02

Sieht nett aus. Läuft bei mir stabil mit 2 FPS ohne VSync ^^
Metal ist keine Musik sondern eine Religion.

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

49

31.01.2011, 22:17

20 FPS bei 1024x768 und VSync aktiv.

Soll das noch irgendwohin führen? Versuche doch zB mal verschiedene Materialtypen für die Spheren, zB Glas, poliertes Metall, mattes Metall, etc.

Allein am Glas kann man sich schon schön vergnügen und die GPU ordentlich zum glühen bringen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

50

31.01.2011, 22:21

So viel aufwendiger für die GPU ist Glas gar nicht, wenn man keine Caustics oder Subsurface-Scattering damit machen will. Brechung allein macht es jedenfalls nicht so viel schlimmer. Stumpf reflektierende Oberflächen sind aber ein schöner Lüfter-Killer.
So wie's momentan aussieht fehlt da aber eh noch ein Fresnel-Term, oder?

Die Performance der neuen Version ist bei mir übelartig in den Keller gegangen. Bin schon bei 640x480 und komm trotzdem nicht mehr über 3 FPS, wenn alles drauf ist. Das war vorher mehr. O.o
Irgendwie wird auch die hellblaue Kugel aus der Mitte nicht auf dem Boden reflektiert. Wie kommt das?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BlueCobold« (31.01.2011, 22:26)


Werbeanzeige