Extensions:IT/2.6/Py/Scripts/Render/POV-Ray

提供: wiki
移動先: 案内検索

Caratteristiche

Some key features of the exporter include:

  • Geometry import and export with their modifiers, keyed and physics animation
  • Add POV-Ray specific primitives
  • Instances
  • Hair particles
  • Smoke simulations
  • Atmospheric media (volume fog)
  • HDRI environment mapping
  • Material properties such as filtering, emission, translucency, subsurface scattering, glass fog (tinted absorption), blurry/glossy reflections...
  • Procedural textures (emulated from Blender Internal and POV-Ray native)
  • Image textures
  • Texture influence channels: Alpha ; Diffuse ; Bump ; Specular ; Mirror (uses same channel as specular)
  • Global Illumination: Radiosity (Indirect Lighting) ; Photons caustics (reflect/refract); meshlights
  • Custom POV-Ray code input giving access to any POV-Ray feature not supported by the exporter.

POV-Ray 3.7 features volumetrics and media (scattering/absorbing); depth of field; non mesh primitives (never show tesselation), etc. developement version already features motion blur, blurry reflection, etc.

Informazioni standardi sullo script nella parte inferiore di questa pagina.

POV-Ray 3.7 Esportatore per Blender 2.8x

POV-Ray è un motore di rendering basato su SDL (Scene Description Language) con una lunga storia che lo rende molto stabile e ricco di funzionalità. L'ultima versione di POV-Ray 3.7 è disponibile all'indirizzo: http://www.povray.org/download/
Vedere la pagina Installazione per informazioni dettagliate su come ottenere, installare o costruire POV-Ray secondo la sua piattaforma.

Scaricare

L'esportatore POV-Ray viene fornito con ogni versione ufficiale di Blender, in modo da poterlo iniziare direttamente.

Tuttavia, dopo aver controllato i registri di ogni commit all'origine dello script per nuove funzionalità o correzioni di bug, se scopri che hai bisogno di un aggiornamento,

  • È possibile scaricare tutto lo script in una volta cliccando l'istantanea snapshot qui:

https://git.blender.org/gitweb/gitweb.cgi/blender-addons.git/tree/refs/heads/master:/render_povray

  • O scaricare una fresco compilazione di Blender, inclusi gli script, da alcuni giorni prima:

https://builder.blender.org/download/

Uso

Avvio Rapido

1. Passare al menu File » User Preferences
1
2. Selezionare la scheda Add-Ons e controllare POV-Ray 3.7 nell'elenco degli 'render' Add-ons.
2
3. Scegliere POV-Ray 3.7 dalle renderer scelte. Quindi si puo rendere come al solito il pulsante Image render button o il suo collegamento (F12 nel layout predefinito)
3
L'immagine verrà resa in base ai parametri impostati nella finestra Properties Window.

Le impostazioni di rendering globali principali per esempio possono essere modificate nella Render scheda.

Ma ci sono anche proprietà per ambiente, materiale (textures), oggetto, ecc. Tutte accessibili nelle schede vicine contestualmente a seconda dell'oggetto selezionato (geometria, camera, luce ...)

4

POV-Ray Rami

Di seguito è riportato un confronto di alcune caratteristiche dei due motori disponibili a questo esportatore:


===== Feature/Engine/Support =====


===== POV-Ray =====


===== UberPOV =====


Full Spectral Resolution
no
yes (under development)
Supersampling
yes
yes
Alpha Mapping
yes
yes
Bump Mapping
yes
yes
Normal Mapping
no
no
Displacement Mapping
no
no
Motion Blur
no
yes
Sub Surface Scattering (SSS)
yes
yes
Volumetric Scattering (Medium)
yes
yes
Blurred Reflections
yes (very tricky)
yes
Clay Render
yes
yes
Depth of Field
yes
yes
Material Layering
yes
yes
Thin Film Coating
yes
yes
Dispersion
yes
yes
Anisotropy
no
no
Thin Film Interference
yes
yes
Complex IOR Files
no
no
Coating Thickness Absorption
yes
yes
Custom Reflectance 90
yes
yes
Custom Fresnel Curve
yes(tricky)
yes(tricky)
Sigma Texture
yes
yes
Sun-Pool Caustics
yes
yes
Ambient Occlusion
no (tricky)
yes (under developement)
Lens Shift
yes
yes
Diaphragm Circular/Polygonal
yes
yes
Per-Model Texture Coordinates
yes
yes
Texture Projection Modes
yes
yes
Front/Camera Mapping
yes(tricky)
yes(tricky)
Multiple UV Channels
no
no
Texture Tone Mapping
yes(tricky)
yes(tricky)
Procedural Textures
yes
yes
Texture Layering
yes
yes
Synthesis Texture Layering
yes
yes
Point Lighting
yes
yes
Mesh Lighting
yes
yes
Image-based Lighting
yes
yes
Physical Sun/Sky
yes(tricky)
yes(tricky)
HDRI Support
yes
yes
IES Support
no
no
Instance Support
yes
yes
Resume/Merge Render
yes
yes
Interactive Render
yes
yes
Vignetting / Bloom / Glare (Post)
yes(tricky)
yes(tricky)
Camera Response CRF (Post)
no
no
Color Balance (Post)
no
no
Multithreading
yes
yes
Region Rendering
yes
yes
Passive Emitter
yes
yes
Invisible Emitter
yes
yes
Invisible Model
yes
yes
Shadowless Model
yes
yes
Shadowless Point Lights
yes
yes
Bucket Rendering
yes
yes

How to pick a branch

UberPOV.png

Activating UberPOV

UberPOV È un ramo di sviluppo di POV-Ray. Proprio come MegaPOV era nei vecchi tempi.

HERE È possibile scaricare un programma di installazione indipendente che non interferisca con un'installazione standard POV-Ray e QUI è un aggiornamento al binario principale.


Scegli il set di funzionalità e punta il percorso del renderer File » User Preferences all'ubicazione del motore che si sceglie di usare e sei brava ad andare.

RendererPath.png


Notare che Feature Set è ciò che le funzionalità vengono scritte nel POV file e il Binari Location punti Blender al binario per renderlo effettivamente. In assenza di qualsiasi Binari Location, Blender utilizzerà le variabili di ambiente e cercherà di trovare il binario più ricco di funzionalità disponibile in quella directory. Quindi, se si è installato UberPOV, è probabilmente utilizzato per rendere, ma è necessario attivare la funzionalità impostata per godere di funzioni specifiche, come riflessioni sfocate. E se volete essere sicuri di utilizzare il normale motore POV-Ray 3.7, invece, indicare esplicitamente il percorso della posizione binaria ad esso..


Proprietà dell'UI Esportate

Render Properties

Radiosity

In POV-Ray, Radiosity è un'inter-riflessione diffusa che non ha niente a che fare con la radosità basata sui colori del vertice. Infatti, è più simile alla raccolta finale di campioni di irraggiamento e fornisce una luce indiretta senza rumore.

More details on POV-Ray Wiki

Anti-aliasing

Sono supportati tre metodi di campionamento:

  • non ricorsiva
  • ricorsiva
  • stochastic (Monte-Carlo)

Il terzo è disponibile solo per UberPOV

Sampling depth

I valori devono essere compresi tra 1 e 9. Valori più alti aumentano il tempo di rendering e possono anche introdurre qualche sfocatura indesiderata.

Anti-alias threshold

Nel semplice metodo non ricorsivo, POV-Ray inizialmente traccia un raggio per pixel. Se il colore di un pixel è diverso dai suoi vicini (a sinistra o sopra) per almeno il valore di soglia impostato, il pixel viene super-campionato scattando un determinato numero fisso di raggi aggiuntivi. La soglia predefinita è 0.3 ma può essere modificata utilizzando questa Antialias_Threshold=n.n opzione.

More details on POV-Ray Wiki

Blender3D FreeTip.png
Depth of Field senza Anti-Aliasing
L'utilizzo di anti aliasing quando la fotocamera Profondità di campo è attiva renderà più rapida la riproduzione e spesso fornisce immagini abbastanza decenti.



Bounding method

Chiamata anche accelerazione, è impostata su automatico BSP (Binary space partitioning) dall'esportatore in quanto è generalmente il più efficiente (solo POV-Ray 3.7) ma altri metodi di accelerazione sono disponibili in POV-Ray. More details on POV-Ray Wiki

Command line switches

Alcuni argomenti della riga di comando possono essere passati a POV-Ray. Gli argomenti sono separati da spazi. Gli interruttori della riga di comando consistono in un segno / (Slash), + (più) o - (meno), seguito da uno o più caratteri alfabetici e eventualmente un valore numerico.

More details on POV-Ray Wiki

Some Commonly Used Commands
-D Nascondi l'immagine durante il rendering

Utilizzare il pulsante di comando -D per non visualizzare l'immagine resa in POV-Ray (leggermente più veloce e più leggera sulla memoria). L'immagine verrà restituita a Blender dopo il completamento (su Linux questo è un interruttore predefinito nascosto per evitare problemi di editor specifici di OS).

+WT Limitare il numero di thread utilizzati

+WT1 Limita POV-Ray per l'utilizzo di un unico thread di rendering. (Allo stesso modo, + WT2 indicherebbe POV-Ray a utilizzare due thread di rendering).

+C Continuare a rendere interrotto

+C per "Continue trace" è in grado di recuperare il punto in cui l'ultimo render è stato arrestato e continuato da esso (anche se si è spento il computer)

/EXIT Chiudere POV-Ray dopo aver reso l'immagine

C'è anche un'opzione in POV-Ray per l'interfaccia Windows per fare lo stesso:

L'opzione "On Completion" su "Exit POV-Ray per Windows" (nel Render menu).


Blender3D FreeTip.png
Fast Preview Renders
Quando si imposta la scena e per rendere anteprima rapida, disattivare le sfumature antialiasing, profondità di campo, fotoni, radiosità, funzioni costose del materiale e nella schermata Pannello ombreggiatura. (Altre funzionalità potrebbero essere disattivate da questo pannello nelle versioni future dell'esportatore) In alternativa, utilizzare i commutatori della riga di comando "qualità" da + q1 a + q11. Questi permettono di disattivare facilmente la maggior parte delle funzionalità ad alta intensità di CPU.



Formatting

Il POV-Ray file esportato può essere personalizzato:

  • Diversi tipi di indentazione da scegliere.
  • Opzione per aggiungere commenti al POV-Ray file.
  • Opzione per scrivere lunghe liste di coordinate in una riga per una facile navigazione del file POV (e un po 'più veloce analisi del renderer)


Scene Properties

Color Management

sRGB is supposed to be always used currently (except for world colors which seem to still be linear in Blender Internal).

World Properties

Background

Blender World gets exported (sky texture appears a little different because of convoluted workaround used).


PovStair.png

Atmospheric Media

(to create volume lights):

  • Number of samples for media calculation
  • Atmospheric media color


Object Properties

Importance sampling

Si tratta di un valore di priorità entre 0 e 1 che può essere impostato per oggetto in 'oggetto' scheda proprietà per Radiosità per sparare più raggi richiede oggetto che em più. Piuttosto con attenzione quando tocco questo prova provare per migliorare i tempi di rendering.

Data Properties

Lo script esporta Sky, Lights, Hair particles, Smoke, fluids, Meshes, Blobs (MetaBalls).

Camera

Depth of Field

Si deve essere abilitato per la proprietà di sotto di agire:

Il punto focale della profondità di campo si basa è Blender UI Distance camp, or object campo.

Aperture

imposta la quantità di sfocatura. (Incremento per ottenere più)

PovNormalPerturbation.png

Perturbation

Normal map per la camera piatta, native POV procedurale patterns ppossono essere usate con le variabile

  • strength
  • turbulence
  • scale


Lamp

  • Ombre commutare pulsante può essere utilizzata per disattivare tracciamento di ombre per lampade specifici solo.
Blender3D FreeTip.png
For Realistic Light Attenuation
Utilizzare inversa decadimento piazza, e un piccolo valore di distanza decadimento con un'intensità luminosa superiore vi darà i migliori risultati con l'implementazione di Povray della legge dell'inverso del quadrato. vedere questa conversazione


BlenderToPovraySmoke.gif

Smoke

  • Uno DF3 file (POV-Ray voxel format) è esportato e viene utilizzato con un supporto contenitore di POV-Ray con la dimensione Sami e risoluzione dal fumo dominio di Blender


Material Properties

Emission

Blender3D FreeTip.png
Mesh Lights
Quando viene utilizzato insieme a radiosity, proprietà Emit vi permetterà di creare lampadine oro Qualsiasi forma luminosa che realmente Si accende altri oggetti.




SSS

Si noti che SSS in POV-Ray (chiamato SSLT scaduto) è molto sensibile e darà risultati diversi se le normali mesh vengono sfumati liscia oro piatta.

Translucency

L'illuminazione dalla parte posteriore di una superficie.

More details on POV-Ray Wiki

IOR Mirror

Questa opzione è per l'utilizzo di uno raytrace consistere IOR per la riflessione e la rifrazione e non infrangere la legge di conservazione dell'energia entre les due.

Iridescence

(Newton's thin film coating)

Caustics.png

Caustics

  • Chromatic dispersion for refractive caustics
  • Fast fake caustics (somewhat like Blender Raytransp)
  • Refractive caustics using photons
  • Reflective caustics using photons (high IOR or no mirror IOR for easier effect.)


Blender3D FreeTip.png
Faster Photons
To set up some caustics, try moving from the smallest photon depth value to a minimum at which you start to see the effect you are after. Check off the Receive Photons object property for any object that does not really need it. (A glass object casting caustics often doesn't need to receive any itself.) Then you can balance other parameters to tune photons distribution and smoothing (gathering). Don't set the global spacing too fine in scene settings, because then you can still make it finer on each object using its spacing multiplier. If your system has several threads, they can be used in the photons stage: one thread per light, so you can then complexify your scene lighting without overhead.



shaders

Emulation da blender per:

  • Specular e diffuse toon (senza edges)
  • Phong e Cook Torrence (stessi)
  • Blinn (aprossimativo)
  • WardIso
  • Fresnel e Minnaert


Blender3D FreeTip.png
Glass Like Materials
Quando provare cercando di realizzare raggiungere alcuni materiali come il vetro, mantenere il valore diffuso basso, o totalmente nero scuro per evitare zona opaca e tenersi discosta la trasparenza.



Texture Properties

UV coordinates

meglio con proiezione planare per ora. (Silvio Falcinelli)

Texture channels

Texture influenze: Alpha ; Diffuse ; Bump ; Specular ; Mirror (come specular)

Custom gamma

For image textures (read POV-Ray 3.7 doc before using since it generally needs not be used.)

More details on POV-Ray Wiki


Using Image Sequences

Link to the original Tutorial by Markku Myllymäki

Note to the reader: this functionality works in Blender Internal, Cycles (see the end this document) and now it works with POV-Ray render (little change in POV-Ray exporter). For Blender itself it is old feature.

This document assumes that the reader is able to UV unwrap and texture a model and animate with keys.

Also, it is safest to set render engine to POV-RAY at the beginning. Otherwise some datablocks may vanish when you change renderer.

Image sequences are changing textures. For example, if your 3D scene has a TV set, and you want to animate, what the TV shows, you could use image sequence. There are many uses. Here, we will be using it for facial animation.

For facial animation, we want to be able to change texture (i.e. facial expression) with a key, so when something happens to a character, the expression changes as a reaction.

Pre-requisite

You need UV mapped model:

Uvmapped.png

You need a sequence of images:

Allfacetex.png

These are separate images, here together only for illustration.

IMPORTANT NOTE: There is a limitation to how you can name the sequence files. For the exporter to work correctly, use this kind of naming:

filename.001.png filename.002.png ... etc.

For example, I used facetex.001.png etc. here in this example.

The dot, three number sequence and another dot. It is mandatory. The exporter fails otherwise. This also applies to some other image sequences in Blender, and the naming convention is from Blender docs.

Defining the image sequence

You can define the material normally. Also, the texture is defined as normal UV mapped texture:

Uvcoords.png

But when you define image name, select first (filename.001.png) image in sequence and change Single Image to Image Sequence:

Sequence.png

Now you have image sequence defined! Using the image sequence in animation

In an animation, you need to be able to to make keys for texture changes. It is useful to set viewport shading to GLSL and put textured mode on, so you can see what happens without rendering the animation.

You can make keys this way:

I key.png

Set "Frames:" to 1. Set "Start:" to 1. Now you can with "Offset:" change the texture in sequence. You can set keys to animation by hovering over "Offset:" and pressing I-key.

Remember to set key Interpolation Mode to Constant:

Constant.png

That's because Blender's default is Bezier. It would change the value of the "Offset:" fractionally and that is not usually a good idea, because usually you want certain texture to show until you define a different one... Constant Interpolation Mode is good for textures.

Now, when you render your animation using POV-Ray, texture changes should work!

Example, frames 1, 5 and 10:

Frame0001.png Frame0005.png Frame0010.png

Sidenote: Cycles usage

For those who wonder how Cycles does this (you need to begin from scratch, because Cycles has different datablocks than BI or POV-Ray).

Set renderer to Cycles Render:

Cycles.png

This is the material node setting for Cycles. As you can see, you can define image sequence there too!

Cycles nodes.png

Custom POV Code

POV-Ray files are not just pure data files (unlike with most other renderers). They are programs, with loops, functions, etc. This means that no matter how many features this exporter could support, POV-Ray will always have much more under the hood.

Video Tutorial

Here is a demonstration of the exporter by SMcA. This video is currently being worked on and may get replaced in the future.

Step by step

You can add custom POV code directly in Blender's text editor, all you have to do is to make sure this pov code has directly or indirectly a #declare keyword, followed by the name of your choice and the pov item you want to use. (Current POV syntax is closer to C than Python, so anything that follows two slash character ( // ) is a comment)

Adding POV code directly

Pov items can be anything but for now only the equivalent of Blender materials can be replaced with this method. In Povray, it is called texture {} don't get confused, it really includes all the material properties.

Though you can directly specify a texture {} block in POV-Ray files, the #declare directive allows to assign it to a variable and reuse it more easily. The exporter makes use of this feature by default, so you won't be able to use your custom texture, unless you declare it. Here is an example:

#declare MyTexture =
texture{ 
    pigment{ 
        brick color rgb< 0.99, 0.99, 0.99>  // color mortar
        color rgb< 0.75, 0.5, 0.30>*0.75  // color brick
        brick_size <0.25, 0.0525, 0.125> // format in x ,y and z- direction 
        mortar 0.01                      // size of the mortar 
        scale 3
    } // end of pigment
    normal {wrinkles 0.75 scale 0.01}
    finish {ambient 0.15 diffuse 0.95 phong 0.2} 
    rotate<0,0,0>  translate< 0.01, 0.00, 0.00>
} // end of texture
1. Navigate the text window menu to display the text properties View » Properties
1
2. check Custom POV Code option.
2
3. Syntax highlight detects pov/inc/mcr/ini extensions.
3
4. Some complete POV-Ray scenes are available to Templates menu from the text header.
4
5. And an Insert Menu to add just some pov code snippets at cursor's location.
5
6. Then you have to go into the material properties to the Custom POV Code field, and just type in the name of your declared item to use: MyTexture in the example Given. Then you can render your image normally and the material will be replaced.
6


Blender and POV-Ray do not have the same coordinates systems: POV is Y up while Blender is Z up, so it is to be expected that text generated content is not turned the same as exported UI items since the exporter adds a transform matrix to all exported entities. So if you want to specify orientations more intuitively by looking at the interface, some transforms have to be specified at the end of your custom blocks, for instance as follows :

scale <-1, 1, 1>  
rotate <90, 0, -90>
}

Adding POV code from include files

In any Povray scene you can use the #include directive to add items from an external Povray file. It's like the import function in Python. The files to be included have .inc as their name extension. Then in the replacement field, you can type in any of the declared names available in the include file. "Out of the box", Povray ships with a lot of include files. So you can use them for your textures, but you can also use them for some of their elements. For instance a very often used include file is one that allows to call colors by their names instead of numbers called colors.inc, so the previous example could also be written:

#include "colors.inc" 
#declare MyTexture =
texture{ 
    pigment{ 
        brick color White*0.99  // color mortar
        color rgb< 0.75, 0.5, 0.30>*0.75  // color brick
        brick_size <0.25, 0.0525, 0.125> // format in x ,y and z- direction 
        mortar 0.01                      // size of the mortar 
        scale 3
    } // end of pigment
    normal {wrinkles 0.75 scale 0.01}
    finish {ambient 0.15 diffuse 0.95 phong 0.2} 
    rotate<0,0,0>  translate< 0.01, 0.00, 0.00>
} // end of texture

Some other POV-Ray specific objects are also available: In POV-Ray a triangle mesh is just one primitive among many. You can explore the POV-Ray language by modifying the output file. and with the same method, add these primitives by hand, OR you can just pick some from the Add menu.

POV-Ray Primitives

Pressing Shift+a in the 3D View Allows you to add POV-Ray specific objects in addition to native Blender objects

ExporterAddMenu.png

They are mathematically defined as opposed to Triangle meshes. The sphere, torus, cylinder or cone side will always be round and smooth when rendered, no matter how close you get, and regardless of their appearance in the 3D view, which is only a proxy.


These objects are the type of objects that get created when you import a POV-Ray file, so that ideally, you could "exchange" data back and forth between POV-Ray and Blender.

Infinite Plane

The rendered plane is actually infinite, but represented by a proxy in the 3D view, which is just very big, but still finite. Please report if you'd rather have a différent default scale.

PovInfinitePlane1.png
PovInfinitePlane2.png


More details on POV-Ray Wiki

Box

Based on a mesh cube the object can be transformed using move/rotate/scale

PovBox.png


More details on POV-Ray Wiki

Sphere

The sphere has a radius parameter, a location and a scale.

PovSphere1.png
PovSphere2.png


More details on POV-Ray Wiki

Cylinder

In POV-Ray, cylinders are defined by radius, base point and end point. For convenience, move/rotate/escale can be used to the same effect.

PovCylinder1.png
PovCylinder2.png


More details on POV-Ray Wiki

Cone

Cones have a basis radius and end radius

PovCone1.png
PovCone2.png


More details on POV-Ray Wiki

Torus

Torus has a main radius and a section radius.

PovTorus1.png
Torus2.png


More details on POV-Ray Wiki

Parametric

This is a surface generated from the combination of three mathematical equations

More details on POV-Ray Wiki

Rainbow

The rainbow is a view dependant effect

PovRainbow1.png
PovRainbow2.png


More details on POV-Ray Wiki

Lathe

This object behaves like the Blender screw modifier to create surfaces by revolving a spline except instead of being tesselated beforehand, it follows the mathematical curvature of the spline so you won't see any polygons no matter how close you zoom.

PovLathe1.png
PovLathe2.png


More details on POV-Ray Wiki

Prism

This is a POV-Ray primitive that simply extrudes a shape

PovPrism.png


More details on POV-Ray Wiki

Superquadric Ellipsoid

A quite versatile tool that can provide quick models for cushion or star shaped objects

PovSuperquadricEllipsoid.gif
PovSuperquadricEllipsoid2.gif


More details on POV-Ray Wiki

HeightField

This is a displacement of a surface following a texture. Tessellation also happens at render time, so you don't need to subdivide anything before.

PovHeightField1.png
PovHeightField2.png


More details on POV-Ray Wiki

SphereSweep

This POV-Ray primitive sweeps a sphere a long as spline to create an interpolated form that can have variations of radius along the spline. It is also used to export hair strands.

PovSphereSweep1.png
PovSphereSweep2.png


More details on POV-Ray Wiki

BlobSphere

Like Blender Metaballs

PovBlob1.png
PovBlob2.png
PovBlob3.png


More details on POV-Ray Wiki

Isosurfaces

In POV-Ray isosurfaces are objects that can combine and be deformed using pigments or equations

More details on POV-Ray Wiki

Isosurface Box

An isosurfacecomponent shaped as a box

Isosurface Sphere

An isosurfacecomponent shaped as a sphere

Supertorus

An isosurface shaped as a torus with deforming parameters equivalent to those of the superellipsoid.

Parameters (POV-Ray names):

  • MajorRadius, MinorRadius = Base radii for the torus.
  • MajorControl, MinorControl = Controls for the roundness of the supertorus. Use numbers in the range [0, 1].
  • Accuracy = The accuracy parameter.
  • MaxGradient = The max_gradient parameter.

Macro based primitives

Two primitives are actually macros that generate a mesh from curves before render time:

  • Polygon to Circle Blending
PovPolyToCircle1.png
PovPolyToCircle2.png


  • Loft
PovLoft1.png
PovLoft2.png


Importing POV-Ray files

1. From the same Shift+a menu, you can also import povray files
1
2. Or otherwise, clicking File » Import from the main header menu
2
3. You can then select one or several files (holding ⇧ Shift or pressing B for drag box selection
3

Merging POV scripted Animations

link to original tutorial

While Blender is one of the best modelers in existence, it is primarily a polygon modeler. There are some cases when you want to use something like POV-Ray's CSG features, which are very good at pure, mathematical forms. But compositing POV-Ray and Blender output is hard work. However, there is a way to combine animations to one render with Blender's POV-Ray Exporter!

Let's make an (very simple) example case: Spaceship flying out of hangar. We wanted to make a dilating door animation in POV-Ray, spaceship animation in Blender and combine them.

Preliminary hacking

    def exportCustomCode():
        # Write CurrentAnimation Frame for use in Custom POV Code
        file.write("#declare CURFRAMENUM = %d;\n" % bpy.context.scene.frame_current)
        #Change path and uncomment to add an animated include file by hand:
        file.write("#include \"/home/quantum/povray_animation/animation_include_file.inc\"\n")

The exporter doesn't include an interface to this functionality yet but it's quite usable already. The folowing lines are from Blender's POV-Ray Exporters file, render.py. The only change you need to do is to write the file path for your own .inc file (which can be named as you want) and check that those two file.write statements are not commented out (i.e. no '#' in the beginning...).

This example uses Linux, so file path is Unix-style, in MS Windows paths are written differently...

Blender animation Blpovfram001.png Blpovfram100.png

We defined 100 frame animation in Blender. Basically just move (linearly) the spaceship.

Of course the world paramaters, lighting and objects materials/textures need to be what POV-Ray needs. Here, they are very basic. No image textures, one light, little ambient light.

POV-Ray animation

#include "colors.inc"

#declare doorpart = difference {
	cylinder { <0, 0, -0.1>, <0, 0, 0.1>, 3 }
	box { <-10, -10, -10>, <0, 10, 10>  rotate <0, 0, (-3*CURFRAMENUM+3)> }
	box { <-10, -10, -10>, <10, 0, 10> }
}

#declare wall = difference {
	box { <-100, -100, -0.2>, <100, 100, 0.2> }
	cylinder { <0, 0, -1>, <0, 0, 1>, 2.9 }    	
}

object {
	wall
	pigment { Green }
} 

#if (CURFRAMENUM<30)
object {
	doorpart
	rotate <0, 0, 0> 
	translate <0, 0, 0> 
	pigment { Green }
} 

object {
	doorpart
	rotate <0, 0, 90> 
	translate <0, 0, 0> 
	pigment { Green }
} 

object {
	doorpart
	rotate <0, 0, 180> 
	translate <0, 0, 0> 
	pigment { Green }
} 

object {
	doorpart
	rotate <0, 0, 270> 
	translate <0, 0, 0> 
	pigment { Green }
} 
#end

We wrote the POV-Ray animation code. This is the animation_include_file.inc which was included in Python code. Note, that CURFRAMENUM is used. It is the animations current frame number in Blender! This way we can know what should happen and when in POV-Ray code. Here is the resulting animation:

Click image to see the video.


Standard Script Information

render_povray
Renders scenes with POV-Ray 3.7
UI location Renderer rolldown menu
Usage If POV-Ray 3.7 is installed, activate the addon in the menu File » User Preferences. Choose it as the renderer and render with F12.
Version 0.0.9 Author(s) Campbell Barton, Silvio Falcinelli, Maurice Raybaud, Constantin Rahn, Bastien Montagne, Leonid Desyatkov
Blender 2.57 License GPL
Category Render Distribution Release
Note(s) After May the 10th 2011, some development to the script limited backwards compatibility: If you set up some files prior to that and always use the latest exporter from SVN. It is advised to run the update script and resave your scene with the new version: get to the search bar with Space and type pov to access this command.


Executable information
File name (Python script)+ POV-Ray 3.7
Current version download Here are the logs of every commit to the source:

http://developer.blender.org/diffusion/BA/browse/master/render_povray/

  • You can download all the script at once by clicking snapshot here:

https://git.blender.org/gitweb/gitweb.cgi/blender-addons.git/tree/refs/heads/master:/render_povray

  • or download a fresh blender build including scripts from generally a few days before here:

https://builder.blender.org/download/

Python modules Used standard Python modules
External Python Modules or dependencies
Exclamation mark.png
Requires versions of POV-Ray after 3.7, it won't work with POV-Ray 3.6



Warning Please report any bug or request!
Links http://povray.org/
Release Log Dev:2.5/Py/Scripts/Render/POV-Ray
Known Issues Currently Important: