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

TGGC

1x Rätselkönig

  • »TGGC« ist der Autor dieses Themas

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

1

23.08.2011, 19:43

4k "R.E.D." Shadersource fuer Raymarcher und eine Szene

Seit einer Woche gibt es ja meinen neue 4k Intro "R.E.D.", siehe hier: http://pouet.net/prod.php?which=57506.

Wer Interesse hat und einen WebGL faehigen Browser (z.b. aktueller Firefox) der kann sich jetzt einen Teil des Shader-Sourcecodes anschauen und live editieren. Get dazu hier her: http://www.iquilezles.org/apps/shadertoy/ und waehlt dann unter Presets/3D Red aus. Es handelt sich dabei um die voll funktionsfaehige vierte Szene + ihrer 4 Kamerafahrten. Achtung, das Kompilieren des Shaders kann im Browser eine Weile (halbe Minute) dauern.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

3

23.08.2011, 23:23

nice, ich hatte mich schon gefragt, wie du diese deformationen hinbekommen hast, hier ist die antwort xD

Was ist das grundprinzip? So einen unkommentierten optimierten hlsl-code zu verstehen ist nicht immer einfach...

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

TGGC

1x Rätselkönig

  • »TGGC« ist der Autor dieses Themas

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

4

24.08.2011, 13:33

Zu der ganzen Sache ist noch ein Vortrag geplant: http://www.devmania.org/programm/r-e-d-4k-of-awesomeness/
Du kannst dich aber auch mal hier einlesen: http://www.iquilezles.org/www/material/n…nvscene2008.htm

Ich koennte dir auch eine Liste von Ersetzungen machen, damit du den Variablen wieder sinnvolle Namen geben kannst, falls dir das hilft. Einige waren aber von Anfang an nicht sehr Aussagekraeftig benannt.

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

5

24.08.2011, 14:05

hehe, auf den vortrag freue ich mich ;)

Die Kugeln werden nur da vom raymarcher erkannt, wo sie einen gewissen mindestabstand von den anderen Objekten der Szene haben, oder sehe ich das falsch?

Das ist ein sehr schöner effekt, weil die Kugel scheinbar durch das gitten in kleinen Portionen hindurchfließt. Sehr gelungen!

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

24.08.2011, 14:56

Wie ich das verstehe ist da praktisch ein "X - Y + Z" gemacht, wobei Y eine "extrudierte" Variante von Z darstellt. X ist in der letzten Szene die Kugel, Z das Gitter und Y die "extrudierte" Variante des Gitters. Nicht kompliziert, aber effektiv. :)
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]

TGGC

1x Rätselkönig

  • »TGGC« ist der Autor dieses Themas

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

7

24.08.2011, 23:45

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    strNewData= ReplaceString( "rayDir","q", strNewData);
    strNewData= ReplaceString( "cRes","b", strNewData);
    strNewData= ReplaceString( "cFac","a", strNewData);
    strNewData= ReplaceString( "CurStep","d", strNewData);
    strNewData= ReplaceString( "rotate","r", strNewData);
    strNewData= ReplaceString( "repeat","s", strNewData);
    strNewData= ReplaceString( "pi","g", strNewData);
    strNewData= ReplaceString( "sqrtOf075","h", strNewData);
    strNewData= ReplaceString( "EndlessBar","i", strNewData);
    strNewData= ReplaceString( "CurTime","j", strNewData);
    strNewData= ReplaceString( "CurScene","k", strNewData);
    strNewData= ReplaceString( "torus","l", strNewData);
    strNewData= ReplaceString( "noise3D","u", strNewData);
    strNewData= ReplaceString( "smoothnoise","w", strNewData);


Die Stelle, die das eben Angesprochene macht, ist diese: "min( z, max( 0.5 - z, D(p) ) )". D(p) ist das rote Objekt und z die restliche Umgebung.

Werbeanzeige