Forum > 3D Programme im Detail

POV-Ray -- Raytracing und mehr

<< < (2/3) > >>

Mr Ronsfield:

--- 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. ;)
--- Ende Zitat ---


Es kommt auf die einstellungen an! Die Spiegelung frißt da ziemlich Ressourcen und wenn man noch AO einschltet dann kann es dauern !

Tolayon:
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
  look_at
}

light_source {
 
  color rgb
}
light_source {
 
  color rgb
}


// Einfacher Sternen-Nebel
//------------------------
sky_sphere {
  pigment {
    bozo
    turbulence 0.33
    color_map {
      [0 color rgb ]
      [0.5 color rgb 0]
    }
    scale 0.45
    rotate -45*z
  }
  pigment {
    bozo
    turbulence 0.566
    color_map {
      [0 color rgbt ]
      [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 color rgbt ]
      [0.28  0.47 color rgbt 1 color rgbt 1]
      [0.47  0.48 color rgbt color rgbt ]
      [0.48  0.68 color rgbt 1 color rgbt 1]
      [0.68  0.69 color rgbt color rgbt ]
      [0.69  0.88 color rgbt 1 color rgbt 1]
      [0.88  0.89 color rgbt color rgbt ]
      [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 ]
      [1 color rgb ]
    }
  }
  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 ]
      [1 color rgb ]
    }
  }
  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 {
 
  max_iteration 9
  precision 20
  hypercomplex
  rotate 90*z
}


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

object {
  Asteroid
  scale 1.233
  texture { Stone1 }
  translate
}

object {
  Artefact
  scale 2
  texture { Stone2 rotate 90*z }
  translate
}

--- Ende Zitat ---


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
  look_at
  angle 45
}

light_source {
 
  color rgb
}


// Einfacher Sternen-Nebel
//------------------------
sky_sphere {
  pigment {
    bozo
    turbulence 0.33
    color_map {
      [0 color rgb ]
      [0.5 color rgb 0]
    }
    scale 0.45
    rotate -45*z
  }
  pigment {
    bozo
    turbulence 0.566
    color_map {
      [0 color rgbt ]
      [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 color rgbt ]
      [0.28  0.47 color rgbt 1 color rgbt 1]
      [0.47  0.48 color rgbt color rgbt ]
      [0.48  0.68 color rgbt 1 color rgbt 1]
      [0.68  0.69 color rgbt color rgbt ]
      [0.69  0.88 color rgbt 1 color rgbt 1]
      [0.88  0.89 color rgbt color rgbt ]
      [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.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 }
}

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


// Innere, leuchtende Kugel
//-------------------------
#declare Glow_Spher =
sphere {
  0, 1.925
  texture {
    pigment {
      gradient y
      color_map {
        [0 color rgb ]
        [1 color rgb ]
      }
    }
    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 {
       
        , 2.2
        inverse
      }
    }
  }
  object { Glow_Spher }
}


object {
  Final_Spher
  translate
}


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

--- Ende Zitat ---


Obiger Code ergibt wiederum folgendes Bild:

ulimann644:
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:
@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:
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?? ?(

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln