|
|
(this is the same message as in p.b.i, but I have the source here instead
of the image.)
In the general group, Zeger asked if you could make a real lens flare with
photons. Well, as it turns out, making a real lens flare doesn't require
photons. You see, lens flare is simply interreflection within the complex
lens system of a camera. Some lens flare also comes from imperfections
in the camera's lenses. The pretty colors come from dispersion.
So, all you need is some glass to reflect and refract, a bit of dispersion,
and a really bright object to get reflected and refracted.
I threw this scene together quickly in Moray. It has a *really*
bright sphere in front of a dark checkered plane. Between the camera
and the rest of the scene is a set of lenses. These lenses are *not*
mathematically correct or anything like that, so they do distort the
checker pattern a bit. The lenses look like:
_
/\ \ /
scene || | | camera
\/ /_\
I added strong dispersion (only 6 elements, though) and set max_trace_level
to 8. This scene *requires* the Daren's dispersion patch, which is included
in UVPov. (It may also be in the superpatch, but don't quote me on that.)
This simple scene took a whopping 2 hours 43 minutes on my P266 at
512x384 with no AA. To get a really good flare you'd need a much
more complex lens system and a much higher max_trace, so I doubt
anyone will be using this technique in there real scenes.
-Nathan
============================= realflare.pov =============================
//
// REAL LENS FLARE - BY NATHAN KOPP
// May 31, 1999
//
// Requires Daren's Dispersion Patch (included in UVPov)
//
// Persistance of Vision Raytracer V3.1
// World definition file.
//
// Contains 1 lights, 3 materials and 11 primitives.
//
// This file was generated for POV-Ray V3.1 by
// Moray V3.1 For Windows (c) 1991-1998 Lutz + Kretzschmar
//
// Date : 05/31/1999 (31.05.1999)
//
/*
The text between these two comments is in MorayPOV.INC and is
automatically included in all POV files that Moray exports.
*/
default {
texture {
pigment { rgb <1,0,0> }
}
}
/* // Scene Comment
This scene was created with Moray For Windows.
*/ // End Scene Comment
global_settings {
adc_bailout 0.003922
ambient_light <1.0,1.0,1.0>
assumed_gamma 1.9
hf_gray_16 off
irid_wavelength <0.247059,0.176471,0.137255>
max_intersections 64
max_trace_level 8
number_of_waves 10
radiosity {
brightness 3.3
count 100
distance_maximum 0.0
error_bound 0.4
gray_threshold 0.5
low_error_factor 0.8
minimum_reuse 0.015
nearest_count 6
recursion_limit 1
}
}
background { color <0.000,0.000,0.000> }
camera { // Camera StdCam
location < 0.000, -3.158, 0.000>
direction < 0.0, 0.0, 1.8317> // Aperture is 0.53 degrees
sky < 0.00000, 0.00000, 1.00000> // Use right handed-system
up < 0.0, 0.0, 1.0> // Where Z is up
right < 1.33333, 0.0, 0.0> // Aspect ratio
look_at < 0.000, 0.000, 0.000>
}
//
// ******* L I G H T S *******
//
light_source { // Light1
<1.606, 6.285, 0.921>
color rgb <1.000, 1.000, 1.000>*7
}
//
// ******** MATERIALS *******
//
#declare Glass_1 =
material // Glass_1
{
texture
{
pigment
{
color rgbf <1.0, 1.0, 1.0, 1.0>
}
normal
{
bumps , 0.001
scale <0.001, 0.001, 10.0>
}
finish
{
ambient 0.1
diffuse 0.0
phong 0.3
phong_size 90.0
reflection 0.2
}
}
interior
{
ior 1.5
dispersion 0.6
disp_nelems 6
}
}
// $MRY$: 'DarkTex'
#declare DarkTex =
material // DarkTex
{
texture
{
pigment
{
checker
color rgb <0.007843, 0.0, 0.007843>*3
color rgb <0.0, 0.007843, 0.003922>*4
}
}
}
// $MRY$: 'BrightTex'
#declare BrightTex =
material // BrightTex
{
texture
{
pigment
{
color rgb <1.0, 1.0, 1.0>
}
finish
{
ambient 1.0
diffuse 1.0
}
}
}
//
// ******** REFERENCED OBJECTS *******
//
//
// ******** OBJECTS *******
//
#declare Lens1 = intersection {
sphere { // Sphere004
<0,0,0>,1
scale <2.0, 0.5, 2.0>
translate -0.25*y
}
sphere { // Sphere005
<0,0,0>,1
scale <2.0, 0.5, 2.0>
translate 0.25*y
}
translate -0.3*y
}
#declare Lens2 = intersection {
sphere { // Sphere006
<0,0,0>,1
scale <2.0, 0.5, 2.0>
translate -0.25*y
}
sphere { // Sphere007
<0,0,0>,1
scale <2.0, 0.5, 2.0>
translate 0.25*y
}
translate 0.3*y
}
difference { // Lens4
cylinder { // Cylndr001
<0,0,1>, <0,0,0>, 1
scale <1.5, 1.5, 0.5>
rotate -90.0*x
translate -0.25*y
}
object { Lens1 }
object { Lens2 }
material {
Glass_1
}
scale <1.25, 1.0, 1.25>
translate -0.55*y
}
sphere { // Sphere003
<0,0,0>,1
material {
BrightTex
}
no_shadow
scale 0.25
translate <1.645867, 6.672443, 0.978075>
}
plane { // Plane001
z,0
material {
DarkTex
}
rotate 90.0*x
translate <0.078785, 8.05669, -0.040753>
}
intersection { // Lens
sphere { // Sphere001
<0,0,0>,1
scale <2.0, 0.5, 2.0>
translate -0.25*y
}
sphere { // Sphere002
<0,0,0>,1
scale <2.0, 0.5, 2.0>
translate 0.25*y
}
material {
Glass_1
}
scale <1.1, 1.0, 1.1>
}
Post a reply to this message
|
|