Autor Thema: POV-Ray -- Raytracing und mehr  (Gelesen 13893 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Tolayon

  • Lieutenant Commander
  • *
  • Beiträge: 4.517
POV-Ray -- Raytracing und mehr
« am: 08.11.08, 15:05 »
Da POV-Ray hier schon mal das eine oder andere Mal erwähnt wurde und ich wie gesagt damit arbeite, möchte ich das Programm einmal genauer vorstellen.
Es handelt sich dabei um einen Standalone-Freeware-Raytracer, der zum einen nach Konversion normale Mesh-Objekte aus externen Modellier-Programmen (wie z.B. Wings 3D) rendern kann.
Doch wie fast jeder Standalone-Raytracer verfügt auch POV-Ray über eine Script-Sprache, mit der sich zunächst einmal einzelne Testszenen erstellen und rendern lassen. Als wohl gängigstes Klischee im Raytracing-Bereich seien hier mal die berüchtigten spiegelnden Kugeln auf Schachbrett-Boden erwähnt.

Hier mal ein Screenshot der POV-Ray-Version für Windows; der integrierte Texteditor ermöglicht dank Syntax-Highlightning recht komfortables Arbeiten:




POV-Rays Skriptsprache kann aber weitaus mehr als nur einfache geometrische Objekte in Szene zu setzen. Allein schon die Tatsache, dass diese Sprache (SDL = Scene Description Language) sich syntaktisch an C++ anlehnt lässt die Mächtigkeit erahnen.
Und in der Tat erlaubt POV-Ray neben prozeduralem Texturieren und den gängigen Raytracing-Funktionen auch noch prozedurales Modellieren mit fast unbegrenzten Möglichkeiten. Neben CSG-Konstrukten, welche mit boolschen Operationen (Zusammenfügen, Wegnehmen und Schnittmenge) arbeiten lassen sich mit komplexeren mathematischen Funktionen Objekte wie etwa \"Isosurfaces\" und Julia-Fraktale generieren. Auch kann man mit eingebauten und selbst geschriebenen Makros anhand mathematischer Regeln Mesh-Objekte erzeugen - letztere lassen sich, wenn man sie als Textdatei abspeichert mit dem ebenfalls kostenlosen Konverter Poseray sogar ins OBJ-Format zwecks Verwendung in weiteren 3D-Programmen transferieren.


Im Folgenden habe ich mal drei kurze Demo-Szenen vorbereitet, von denen ich jeweils zuerst den Quelltext und danach die daraus erzeugten Bilder zeigen werde. Jeder der dieselbe POV-Ray-Version hat wie ich, sollte im Grunde dieselben Ergebnisse durch bloßes Kopieren und Rendern der Demo-Skripte erzielen können. Alle Objekte und Texturen sind vollkommen prozedural, es kommen nur Elemente zum Einsatz die bereits in POV-Ray und seinen Preset-Include-Dateien vorhanden sind.

Das erste Script - eine ganz banale Einführung:

Zitat

// Einfache Demo-Szene mit Farbverlauf-texturierter Kugel
// von Tolayon
//=========================================================

camera {
  location <5, 3, -5>
  look_at <0, 3, 0>
  rotate 45*y
  angle 45
}


// Weißes Licht
//-------------
light_source {
  <60, 40, -80>
  color rgb 1
}


// Blauer Hintergrund
//-------------------
background {
  color rgb <0.35, 0.4, 0.55>
}


// Einfache Farbe für den Boden
//-----------------------------
#declare Ground_Text =
texture {
  pigment {
    color rgb <0.85, 0.7, 0.7>
  }
}


// Farbverlauf für die Kugel
//--------------------------
#declare Spher_Text =
texture {
  pigment {
    gradient y
    color_map {
      [0 color rgb <0.33, 0, 0.66>]
      [1 color rgb <0.66, 0, 0.33>]
    }
  }
  scale 2
  translate 1*y
}


// Boden mit oben definierter Textur
//----------------------------------
plane {
  y, -1
  texture { Ground_Text }
}


// Kugel mit oben definierter Textur
//----------------------------------
sphere {
  <0, 0, 0>, 1
  texture { Spher_Text }
  scale 3
  translate <0, 1.65, 10>
}


Das dazu gehörige Bild:

_________________________________________________________



Die zweite Szene ist eine Erweiterung des obigen Scripts; Boden und Hintergrund haben nun komplexere Texturen, der Schatten ist dank Area-Light weicher, die Oberflächen-Eigenschaften der Kugel wurden erweitert und zwei Würfel erstellt, die sich in selbiger Kugel widerspiegeln:

Zitat

// Erweiterte Demo-Szene mit Farbverlauf-texturierter Kugel
// von Tolayon
//=========================================================

camera {
  location <5, 3, -5>
  look_at <0, 3, 0>
  rotate 45*y
  angle 45
}


// Weißes Licht mit weichem Schatten
//----------------------------------
light_source {
  <60, 40, -80>
  color rgb 1
  area_light
  <8, 0, 0> <0, 0, 8>
  4, 4
  adaptive 0
  jitter circular orient
}


// Preset-Himmel
//--------------
#include \"colors.inc\"
#include \"skies.inc\"
sky_sphere { S_Cloud1 rotate 45*y }

// Zum Horizont passender Bodennebel
//----------------------------------
fog {
  fog_type 2
  distance 177
  color rgb <0.847, 0.749, 0.847>
  fog_offset 0.1
  fog_alt 0.2
  turbulence 0.8
}


// Steinmuster für den Boden
//--------------------------
#declare Ground_Text =
texture {
  pigment {
    granite
    color_map {
      [0 color rgb <0.1, 0.05, 0.05>]
      [0.65 color rgb <0.9, 0.8, 0.75>]
    }
  }
  // Bump-Map für den Boden,
  // selbes Muster wie Textur
  //-------------------------
  normal {
    pigment_pattern {
      granite
      color_map {
        [0 color rgb 0]
        [0.65 color rgb 1]
      }
    }
  0.5
  } // Ende Bump-Map
  finish {
    ambient 0.175
    diffuse 0.75
    specular 0.15
    roughness 1
  }
}


// Farbverlauf für die Kugel
//--------------------------
#declare Spher_Text =
texture {
  pigment {
    gradient y
    color_map {
      [0 color rgb <0.33, 0, 0.66>]
      [1 color rgb <0.66, 0, 0.33>]
    }
  }
  // Oberflächen-
  // Beschaffenheit
  //---------------
  finish {
    ambient 0.1
    diffuse 0.75
    specular 0.8
    roughness 0.015
    reflection 0.175
  }
  scale 2
  translate 1*y
}


// Boden mit oben definierter Textur
//----------------------------------
plane {
  y, -1
  texture { Ground_Text scale 3.25 }
}


// Kugel mit oben definierter Textur
//----------------------------------
sphere {
  <0, 0, 0>, 1
  texture { Spher_Text }
  scale 3
  translate <0, 1.65, 10>
}


// Würfel, die sich in Kugel spiegeln
//-----------------------------------
#declare Cube =
box {
  <-1, -1, -1> <1, 1, 1>
  pigment {
    color rgb <0.05, 0.25, 0>
  }
  scale 3
}

object { Cube translate <9, 1.5, -9> }
object { Cube translate <-9, 1.5, -9> }


Gerade hier sagt das entsprechende Bild mehr als tausend Worte:

_________________________________________________________



Kommen wir nun zu einer einfachen Demonstration von prozeduralem Modellieren - ein abstraktes säulenartiges Objekt sowie ein Ring aus einzelnen Ringsegmenten:

Zitat

// Demo-Szene mit einfacheren CSG-Objekten
// von Tolayon
//===========================================

global_settings { max_trace_level 20 }

camera {
  location <0, 3, -5>
  look_at <0, 3, 0>
}

light_source {
  <60, 40, -80>
  color rgb 1
  area_light
  <8, 0, 0> <0, 0, 8>
  4, 4
  adaptive 0
  jitter circular orient
}

sky_sphere {
  pigment {
    gradient y
    color_map {
      [0 color rgb <0.1, 0, 0.7>]
      [1 color rgb <0.05, 0.1, 0.3>]
    }
    scale 100
  }
}

// Zum Horizont passender Bodennebel
//----------------------------------
fog {
  fog_type 2
  distance 200
  color rgb <0.1, 0, 0.7>
  fog_offset 0.1
  fog_alt 0.2
  turbulence 0.8
}

// Berüchtigtes Schachbrett-Muster
//--------------------------------
#declare Checker =
texture {
  pigment {
    checker
    color rgb <0.7, 0.675, 0.65>
    color rgb <0.5, 0.45, 0.4>
  }
  finish {
    ambient 0.2
    diffuse 0.75
    specular 0.85
    roughness 0.5
    reflection 0.075
  }
}


// Metall-Texturen für die
// zusammengebauten Objekte
//-------------------------
#declare Gold_Silver =
texture {
  pigment { color rgb <0.675, 0.675, 0.55> }
  finish {
    ambient 0.1 diffuse 0.6
    specular 0.9 metallic
    roughness 0.0005
    reflection { 0.55 metallic }
  }
}

#declare Copper =
texture {
  pigment { color rgb <0.65, 0.35, 0.15> }
  finish {
    ambient 0.2 diffuse 0.65
    specular 0.85 metallic
    roughness 0.001
    reflection { 0.5 metallic }
  }
}


// Säulenartiges CSG-Objekt
//-------------------------
#declare Pillaroid =
difference {
  intersection {
    sphere {
      <0, 1, 1>, 1.2
      scale <1, 4, 1>
    }
    sphere {
      <0, 1, 0>, 4
    }
  }
  cylinder {
    <0, 2, -1.01>
    <0, 2, 1.01>, 0.433
  }
}


// Ring aus Einzelringen
//----------------------
#declare Segm_Torus =
torus {
  0.8, 0.1
  rotate 90*x
  translate -8*x
}

#declare Meta_Torus =
union {
  #local Incr = 0;
  #local Num = 250;
  #while (Incr < Num)
    object {
      Segm_Torus
      rotate (Incr*360/Num)*y
    }
    #local Incr = Incr+1;
  #end
}


// Boden mit Schachbrett-Muster
//-----------------------------
plane {
  y, -1
  texture { Checker rotate -42*y }
}


// Erstes vordefiniertes Objekt
//-----------------------------
object {
  Pillaroid
  texture { Gold_Silver }
  scale 1.5
  translate <0, -1.5, 15>
}

// Zweites vordefiniertes Objekt
//------------------------------
object {
  Meta_Torus
  texture { Copper }
  translate <0, -0.1, 15>
}

// Würfel, die sich in Objekten spiegeln
//--------------------------------------
#declare Cube =
box {
  <-1, -1, -1> <1, 1, 1>
  pigment {
    color rgb <0.05, 0.25, 0>
  }
  scale 3
}

object { Cube translate <-12, 1.5, -9> }
object { Cube translate <12, 1.5, -9> }


Und so sieht das Ganze aus:



Zu guter Letzt noch der offizielle Link, wo man POV-Ray runterladen kann und weitere Ressourcen vorfindet:

POVRay.org

The Animaniac

  • Lieutenant Junior Grade
  • *
  • Beiträge: 1.857
  • Scifi-3D-Maniac
    • http://www.scifi-meshes.com
POV-Ray -- Raytracing und mehr
« Antwort #1 am: 08.11.08, 15:16 »
Wozu wird das verwendet, kenne das nur vom Namen her?




\"All this has happened before, and all this will happen again...\" Prophecies of Pythia

Tolayon

  • Lieutenant Commander
  • *
  • Beiträge: 4.517
POV-Ray -- Raytracing und mehr
« Antwort #2 am: 08.11.08, 15:28 »
Wie gesagt als Software-Renderer für Raytracing; obendrein noch zum alleinigen Erstellen kompletter Inhalte und Szenen - je nachdem wie gut man sich damit auskennt.

Es braucht natürlich schon ein gewisses Abstraktions-Vermögen um bildliche Vorstellungen in der Script-Sprache umzusetzen, welche wiederum ein Bild ergeben soll das den ursprünglichen Vorstellungen möglichst genau entspricht.
Da man eine visuelle Kontrolle nur nach ersten Test-Rendern hat, kann man auch Objekte und Szenen in anderen Programmen zusammenstellen, dann in das POV-Ray-Format konvertieren und dort rendern lassen.

Was Qualität und Geschwindigkeit angeht:
Aus heutiger Sicht kann POV-Ray da nicht mehr ganz mit aktuellen und vor allen Dingen kostenpflichtigen High-End-Raytracern mithalten; dennoch liefert es Ergebnisse die man je nach Einstellung schon nahe an fotorealistisch ansiedeln würde.

Ein echtes Manko ist die Render-Geschwindigkeit: Abhängig davon, wie groß das Bild ist und welche Effekte man einsetzt um eine möglichst realistische Darstellung zu erzielen, kann es selbst auf modernen Computern bis zu mehreren Wochen (!) dauern bis das Bild fertig ist.
Die letzte stabile Vollversion (3.6 die auch ich habe) unterstützt dabei noch keine multiplen Prozessorkerne - das kann erst POV-Ray 3.7 das derzeit noch als Beta existiert.

Mr Ronsfield

  • Global Moderator
  • Rear Admiral
  • *
  • Beiträge: 17.191
    • http://mrronsfield.blogspot.com/
POV-Ray -- Raytracing und mehr
« Antwort #3 am: 08.11.08, 17:30 »
Das ist sicher für seinen anwendungsbereich eine sehr gute anwendung!
Aber die Szene mit der Kugel, da brauch ich in C4D ca 5 min für. Und das Rendern würde vielicht 20 min dauern!
Da kommt mir POV-Ray etwas umständlich vor :(

Aber für jeden das mit dem er am besten klar kommt  :]
Bazinga / STO:  Angus Ronsfield@MrRonsfield

"I'll be a Browncoat forever"


Selius

  • Lieutenant
  • *
  • Beiträge: 2.869
  • Der Weltraum ist unendlich
    • SeliusWelt " Interessantes aus meiner kleinen Welt "
POV-Ray -- Raytracing und mehr
« Antwort #4 am: 08.11.08, 17:44 »
@ Mr Ronsfield

Nun ich will dir nicht wiedersprechen aber die Szene mit der würde sogar ich mit meinen geringen Ressourcen in weniger als einer Minute rendern und das in einer top Auflösung. ;)

Mr Ronsfield

  • Global Moderator
  • Rear Admiral
  • *
  • Beiträge: 17.191
    • http://mrronsfield.blogspot.com/
POV-Ray -- Raytracing und mehr
« Antwort #5 am: 08.11.08, 18:11 »
Zitat
Original von Selius
@ Mr Ronsfield

Nun ich will dir nicht wiedersprechen aber die Szene mit der würde sogar ich mit meinen geringen Ressourcen in weniger als einer Minute rendern und das in einer top Auflösung. ;)


Es kommt auf die einstellungen an! Die Spiegelung frißt da ziemlich Ressourcen und wenn man noch AO einschltet dann kann es dauern !
Bazinga / STO:  Angus Ronsfield@MrRonsfield

"I'll be a Browncoat forever"


Tolayon

  • Lieutenant Commander
  • *
  • Beiträge: 4.517
POV-Ray -- Raytracing und mehr
« Antwort #6 am: 08.11.08, 20:42 »
Das mit den wochenlangen Renderzeiten bezog sich auch auf wesentlich komplexere Szenen mit Radiosität, Photonen, volumetrischen Medien und all dem noch in wechselseitiger Interaktion + Riesenmaße in Bestqualität ;)

Was das Erstellen der Szenen betrifft - mit der entsprechenden Übung lässt sich der Quelltext auch in nur wenigen Minuten erstellen. Das Nachdenken darüber was und wie man in dem Editor schreibt dauert meist viel länger als das Schreiben an sich.

Und POV-Ray hat zumindest einen enormen Vorteil:
Da - von den Mesh-Formaten mal abgesehen - die meisten Objekte nur durch maximal ein paar Zeilen Code repräsentiert werden, brauchen die Quelldateien nur ein paar KB Platz anstatt ein paar MB wie bei Meshes.
Mal zum Vergleich: Ich hab mir vor einigen Monaten ein speziell für POV-Ray erstelltes Modell der alten TOS-Enterprise runtergeladen. Alles komplexe, handgeschriebene CSG - übrigens schon ein paar Jahre alt - und insgesamt nur 74 KB groß (auf verschiedene Include-Dateien verteilt). Da können Meshes nicht mithalten!


Hier mal noch zwei weitere, komplexere Beispiel-Szenen.
Die erste enthält eine Isosurface und ein Julia-Fraktal; der Hintergrund stellt einen einfachen Sternennebel dar:

Zitat

// Demo-Szene mit Isosurface und Julia-Fraktal
// vor Sternen-Hintergrund
// von Tolayon
//==============================================

global_settings { max_trace_level 20 }

camera {
  location <0, 3, -5>
  look_at <0, 3, 0>
}

light_source {
  <60, 40, -80>
  color rgb <0.98, 0.98, 1>
}
light_source {
  <-60, -40, -30>
  color rgb <0.2, 0.2, 0>
}


// Einfacher Sternen-Nebel
//------------------------
sky_sphere {
  pigment {
    bozo
    turbulence 0.33
    color_map {
      [0 color rgb <0.5, 0, 0.275>]
      [0.5 color rgb 0]
    }
    scale 0.45
    rotate -45*z
  }
  pigment {
    bozo
    turbulence 0.566
    color_map {
      [0 color rgbt <0.275, 0, 0.5, 0>]
      [0.45 color rgbt 1]
    }
    scale 0.3
    rotate 35*z
  }
  // Variante des Presets \"Starfield1\":
  //-----------------------------------
  pigment {
    granite
    color_map {
      [0.00  0.27 color rgbt 1 color rgbt 1]
      [0.27  0.28 color rgbt <0.5,0.5,0.4, 0.5> color rgbt <0.8,0.8,0.4,0>]
      [0.28  0.47 color rgbt 1 color rgbt 1]
      [0.47  0.48 color rgbt <0.4,0.4,0.5, 0.5> color rgbt <0.4,0.4,0.8,0>]
      [0.48  0.68 color rgbt 1 color rgbt 1]
      [0.68  0.69 color rgbt <0.5,0.4,0.4,0> color rgbt <0.8,0.4,0.4,0.5>]
      [0.69  0.88 color rgbt 1 color rgbt 1]
      [0.88  0.89 color rgbt <0.7,0.7,0.7,0.2> color rgbt <1, 1, 1, 0.33>]
      [0.89  1.00 color rgbt 1 color rgbt 1]
    }
    turbulence 1
    sine_wave
    scale 0.05
    }
} // Ende Sternen-Nebel


// Texturen für die
// jeweiligen Objekte
//-------------------
#declare Stone1 =
texture {
  pigment {
    bozo
    turbulence 0.25
    color_map {
      [0 color rgb <0.45, 0.35, 0.315>]
      [1 color rgb <0.52, 0.425, 0.41>]
    }
  }
  finish {
    ambient 0.1 diffuse 0.6
    specular 0.275 roughness 1.5
  }
  scale 0.33
}

#declare Stone2 =
texture {
  pigment {
    marble
    turbulence 0.75
    color_map {
      [0 color rgb <0.6, 0.612, 0.75>]
      [1 color rgb <0.215, 0.2, 0.25>]
    }
  }
  finish {
    ambient 0.1 diffuse 0.65
    specular 0.75 roughness 0.0015
    reflection 0.125
  }
  scale 0.2
}




// Asteroidenartige \"Isosurface\"
//------------------------------
#declare fn_Agate =
function {
  pigment {
    agate
    color_map {
      [0 color rgb 0]
      [1 color rgb 1]
    }
    scale 0.66
  }
}

#include \"functions.inc\"

#declare Asteroid =
isosurface {
  function {
    f_sphere(x, y, z, 1.6)-fn_Agate(x/2, y/2, z/2).gray*0.5
  }
  contained_by {
    box { -2, 2 }
  }
  accuracy 0.001
  max_gradient 9.5
}


// Julia-Fraktal
//--------------
#declare Artefact =
julia_fractal {
  <-0.745, 0, 0.113, 0.05>
  max_iteration 9
  precision 20
  hypercomplex
  rotate 90*z
}


// Platzierung der Objekte
//------------------------

object {
  Asteroid
  scale 1.233
  texture { Stone1 }
  translate <-3, 3, 8>
}

object {
  Artefact
  scale 2
  texture { Stone2 rotate 90*z }
  translate <3, 3, 7.5>
}


Und so sieht das Ganze dann aus:

_________________________________________________________



Die zweite Szene beinhaltet ein prozedural generiertes Mesh-Objekt auf Basis des Preset-Makros \"HF_Sphere\"; die Dicke der Platten habe ich bewusst etwas übertrieben, um zu zeigen dass es sich hier nicht um Bump-Mapping, sondern gewissermaßen eine Displacement-Funktion handelt. Die Kerbe in der Mitte und die kleinere, leuchtende Kugel wurden mittels CSG-Operation eingefügt. Beim Rendern kam das \"Radiosity\"-Feature zum Einsatz, durch welches die besagte leuchtende Kugel selbst zu einer schwachen Lichtquelle wird:

Zitat

// Demo-Szene mit prozeduralem Mesh-Objekt (\"HF Sphere\")
// von Tolayon
//=======================================================


global_settings {
  max_trace_level 20
  // Radiosität-
  // Beleuchtung:
  //-------------
  radiosity {
  pretrace_start 0.08
  pretrace_end 0.04
  count 35
  nearest_count 3
  error_bound 0.8
  recursion_limit 3
  low_error_factor 0.5
  gray_threshold 0.0
  minimum_reuse 0.015
  brightness 1
  adc_bailout 0.01/2
  }
}

camera {
  location <0, 3, -5>
  look_at <0, 2.5, 0>
  angle 45
}

light_source {
  <60, 40, -80>
  color rgb <0.98, 0.98, 1>
}


// Einfacher Sternen-Nebel
//------------------------
sky_sphere {
  pigment {
    bozo
    turbulence 0.33
    color_map {
      [0 color rgb <0.5, 0, 0.275>]
      [0.5 color rgb 0]
    }
    scale 0.45
    rotate -45*z
  }
  pigment {
    bozo
    turbulence 0.566
    color_map {
      [0 color rgbt <0.275, 0, 0.5, 0>]
      [0.45 color rgbt 1]
    }
    scale 0.3
    rotate 35*z
  }
  // Variante des Presets \"Starfield1\":
  //-----------------------------------
  pigment {
    granite
    color_map {
      [0.00  0.27 color rgbt 1 color rgbt 1]
      [0.27  0.28 color rgbt <0.5,0.5,0.4, 0.5> color rgbt <0.8,0.8,0.4,0>]
      [0.28  0.47 color rgbt 1 color rgbt 1]
      [0.47  0.48 color rgbt <0.4,0.4,0.5, 0.5> color rgbt <0.4,0.4,0.8,0>]
      [0.48  0.68 color rgbt 1 color rgbt 1]
      [0.68  0.69 color rgbt <0.5,0.4,0.4,0> color rgbt <0.8,0.4,0.4,0.5>]
      [0.69  0.88 color rgbt 1 color rgbt 1]
      [0.88  0.89 color rgbt <0.7,0.7,0.7,0.2> color rgbt <1, 1, 1, 0.33>]
      [0.89  1.00 color rgbt 1 color rgbt 1]
    }
    turbulence 1
    sine_wave
    scale 0.05
    }
} // Ende Sternen-Nebel


// Texturen für Boden und Sphäre
//------------------------------
#declare Floor_Text =
texture {
  pigment {
    crackle
    metric 1
    color_map {
      [0 color rgb <0.225, 0.325, 0.225>]
      [0.175 color rgb 0]
    }
  }
  finish {
    ambient 0.25 diffuse 0.75
    reflection 0.075
  }
  scale 0.66
}

#declare T_Sphere =
texture {
  pigment {
    cells
    color_map {
      [0 color rgb 0.38]
      [0.5 color rgb 0.5]
      [1 color rgb 0.62]
    }
  }
  normal {
    quilted 0.075 scale 0.5
  }
  finish {
    ambient 0 diffuse 0.75
    specular 0.533 metallic
    roughness 0.003
    reflection { 0.366 metallic }
  }
}


// Hf-Sphäre Rohbau
//-----------------
#include \"shapes.inc\"

#declare Cell_Funct =
function {
  pattern {
    cells
    scale <0.2, 0.125, 0.125> }
}

#declare Raw_Sphere =
object {
  HF_Sphere (Cell_Funct, off, off, <600,600>, on, \"\", 0, 2, 0.1)
  texture { T_Sphere scale <0.2, 0.125, 0.125> }
}


// Innere, leuchtende Kugel
//-------------------------
#declare Glow_Spher =
sphere {
  0, 1.925
  texture {
    pigment {
      gradient y
      color_map {
        [0 color rgb <0.6, 1, 0.6>]
        [1 color rgb <0.3, 0.5, 0.275>]
      }
    }
    finish {
      ambient 0.6 diffuse 0.4
    }
    scale 0.01
    rotate 90*z
  }
}


// Zusammengesetzte Sphäre
//------------------------
#declare Final_Spher =
union {
  object { Raw_Sphere
    clipped_by {
      cylinder {
        <0, -0.2, 0>
        <0, 0.2, 0>, 2.2
        inverse
      }
    }
  }
  object { Glow_Spher }
}


object {
  Final_Spher
  translate <0, 1, 7>
}


// Boden
//------
plane { y, -1
  texture { Floor_Text }
}


Obiger Code ergibt wiederum folgendes Bild:

ulimann644

  • Gast
POV-Ray -- Raytracing und mehr
« Antwort #7 am: 08.11.08, 22:09 »
In Zeiten in denen man Programme wie trueSpace 7.6 - hat einen vielseitigen Editor gleich dabei - kostenlos downloaden kann, scheint mir diese Methode einfach nur komplizierter zu sein. Zeitgemäß wäre sie nicht mal zu seeligen Amiga-Zeiten - Anfang der Neunziger - gewesen, da gab es bereits prima Ray-Tracer mit Editor: Ich sage da nur - Turbo-Silver ( später Imagine ) und Reflections 2.5

Die Frage ist: Warum soll ich mich mit einem Programm wie POV-Ray herumquälen, wenn ich es wesentlich einfacher haben kann - bei besseren Ergebnissen - und das auch im Freeware-Bereich ?? ( Die Beispielszene ist mit trueSpace 7.6 gerendert - das Modell, von Chris Martin, mit einer viel früheren Version erstellt worden. )



Irgendwie kommt mir dieses Programm wie ein Versuch daher, die gute alte Amiga-Basic Zeit nochmal aufleben zu lassen, wozu das jedoch gut sein soll...

Blacktek

  • Petty officer 3rd Class
  • *
  • Beiträge: 373
POV-Ray -- Raytracing und mehr
« Antwort #8 am: 08.11.08, 22:29 »
@Tolayon
Du hast meinen tiefsten Respekt dafür,dass du dich damit auseinander setzt und versuchst mit diesem doch recht umständlichen Programm umzugehen.:respect: :respect: :respect:
Auch deine bisherigen Bilder zeigen,dass du das Zeug dazu hast,....ABER denkst du nicht,es wäre an der Zeit darüber nachzudenken,ob du nicht mal ein anderen, nicht ganz so schweren Raytracer verwendest!?

Mr Ronsfield

  • Global Moderator
  • Rear Admiral
  • *
  • Beiträge: 17.191
    • http://mrronsfield.blogspot.com/
POV-Ray -- Raytracing und mehr
« Antwort #9 am: 08.11.08, 22:38 »
Sorry aber ich muß Blacktek recht geben, da scheint mir ein wenig umständlich zu sein! Ich denke Pov-Ray ist eigendlich für den einsatz in Spielen gedacht oder von wem wird es wofür benutzt?? ?(
Bazinga / STO:  Angus Ronsfield@MrRonsfield

"I'll be a Browncoat forever"


Tolayon

  • Lieutenant Commander
  • *
  • Beiträge: 4.517
POV-Ray -- Raytracing und mehr
« Antwort #10 am: 08.11.08, 23:44 »
Also für Computerspiele scheint mir POV-Ray gerade nicht geeignet, da es als reiner Raytracer zu lange braucht um einzelne Bilder zu rendern...

Den Reiz dieses Programms einem \"Normal-Grafiker\" begreiflich zu machen ist zugegebenermaßen nicht leicht.
Die meisten Anwender dürften auf jeden Fall mehr aus dem Informatik- als herkömmlichen 3D-Bereich stammen.
Ich selbst habe ein paar Semester Linguistische Informatik studiert und mir dabei den Umgang mit Texteditoren angewöhnt. Ein richtiges Programmier-Ass bin ich jedoch nicht, eher im Gegenteil, aber dieser Hintergrund dürfte einer der Gründe sein wieso ich von POV-Ray so angetan bin.

Ein weiterer Grund wäre ein leicht metaphysisch angehauchter:
Es macht einfach Spaß ein paar völlig nerdmäßig wirkende Zeilen in den Editor einzugeben und danach auf Knopfdruck mehr oder weniger schnell ein ästhetisch ansprechendes Bild zu bekommen. Es ist fast so als ob man nur mit Worten eine eigene Welt erschafft - das soll jetzt keinesfalls blasphemisch klingen, kommt aber meiner Meinung nach zu einem gewissen Teil dem nahe was Manche mit POV-Ray so alles anstellen.

Im Grunde spiele ich aber einfach nur so rum; für langwierigere Projekte - ob nun mit POV-Ray oder \"konventionellerer\" Software - fehlen mir die Zeit und die Nerven.
Es gibt aber tatsächlich Künstler die aus POV-Ray weit mehr herausholen als ich jemals könnte; nicht wenige davon könnten mit herkömmlichen Modellier-Programmen nur schlecht umgehen, da sie wie ich vorhin erwähnt habe mehr aus der Informatik- / Mathematik-Ecke kommen.

Ich selbst bin wie schon gesagt weder ein Programmier- noch Mathe-Genie, aber für einige kleinere Spielereien reichen meine Fähigkeiten durchaus.
Ich arbeite aber auch recht viel mit Wings 3D und DAZ Studio als Zulieferer-Programme und erstelle manche Texturen mit 2D-Software.


Wer will kann POV-Ray auch nur als reinen Renderer einsetzen - kostenlos aber in dieser \"Preisklasse\" immer noch hervorragend. Einige Modeller können direkt in das POV-Format konvertieren, bei anderen hilft die ebenfalls bereits erwähnte Konverter-Software \"Poseray\".
Am direktesten in POV-Ray eingebunden ist übrigens Moray, ein Modeller der die gängigsten Primitiv-Objekte auch als POV-Ray-Primitive exportiert und nicht als speicherfressende Mesh-Dateien.

In all den zuletzt genannten Fällen funktioniert POV-Ray als reiner, hochwertiger Freeware-Renderer ohne dass der Anwender auch nur eine Zeile Script selbst von Hand eingeben muss.


Zuletzt noch etwas zu weiteren Möglichkeiten von POV-Ray:
Es kann nicht nur Bilder rendern, sondern diverse Dateiformate (vornehmlich lesbare Textvarianten) ausgeben. Einige der beim Download enthaltenen Scripte erstellen sogar ein komplettes automatisches Portfolio als HTML-Seiten mit einzelnen Demobildern.
Aber das ist dann schon wieder mehr was für die Programmier-Freunde als für die reinen Grafiker ;)

Mr Ronsfield

  • Global Moderator
  • Rear Admiral
  • *
  • Beiträge: 17.191
    • http://mrronsfield.blogspot.com/
POV-Ray -- Raytracing und mehr
« Antwort #11 am: 09.11.08, 00:07 »
Ahhh ich verstehen! :))

Also ist das program nichts für mich, ich bin nicht so der Mathe/Informatik \"Liebhaber\"! :D

Zitat
Ein weiterer Grund wäre ein leicht metaphysisch angehauchter:  Es macht einfach Spaß ein paar völlig nerdmäßig wirkende Zeilen in den Editor einzugeben und danach auf Knopfdruck mehr oder weniger schnell ein ästhetisch ansprechendes Bild zu bekommen. Es ist fast so als ob man nur mit Worten eine eigene Welt erschafft - das soll jetzt keinesfalls blasphemisch klingen, kommt aber meiner Meinung nach zu einem gewissen Teil dem nahe was Manche mit POV-Ray so alles anstellen.


Das ist allerdings cool!  8)
Bazinga / STO:  Angus Ronsfield@MrRonsfield

"I'll be a Browncoat forever"


 

TinyPortal © 2005-2019