Added sun lamp exporting to PsychoBlend.
Psychopath does not yet use this info, however.
This commit is contained in:
parent
0e8d708ff0
commit
c3f3599c09
|
@ -198,6 +198,11 @@ class PsychoExporter:
|
|||
self.w.unindent();
|
||||
self.w.write("}\n")
|
||||
|
||||
# Infinite light sources
|
||||
for ob in self.scene.objects:
|
||||
if ob.type == 'LAMP' and ob.data.type == 'SUN':
|
||||
self.export_world_distant_disk_lamp(ob, "")
|
||||
|
||||
# World section end
|
||||
self.w.unindent()
|
||||
self.w.write("}\n")
|
||||
|
@ -433,3 +438,30 @@ class PsychoExporter:
|
|||
|
||||
return name
|
||||
|
||||
def export_world_distant_disk_lamp(self, ob, group_prefix):
|
||||
name = group_prefix + "__" + escape_name(ob.name)
|
||||
|
||||
# Collect data over time
|
||||
time_dir = []
|
||||
time_col = []
|
||||
time_rad = []
|
||||
for i in range(self.time_samples):
|
||||
self.set_frame(self.fr, self.shutter_start + (self.shutter_diff*i))
|
||||
time_dir += [tuple(ob.matrix_world * Vector((0, 0, -1)))]
|
||||
time_col += [ob.data.color * ob.data.energy]
|
||||
time_rad += [ob.data.shadow_soft_size]
|
||||
|
||||
# Write out sphere light
|
||||
self.w.write("DistantDiskLight $%s {\n" % name)
|
||||
self.w.indent()
|
||||
for direc in time_dir:
|
||||
self.w.write("Direction [%f %f %f]\n" % (direc[0], direc[1], direc[2]))
|
||||
for col in time_col:
|
||||
self.w.write("Color [%f %f %f]\n" % (col[0], col[1], col[2]))
|
||||
for rad in time_rad:
|
||||
self.w.write("Radius [%f]\n" % rad)
|
||||
|
||||
self.w.unindent()
|
||||
self.w.write("}\n")
|
||||
|
||||
return name
|
||||
|
|
Loading…
Reference in New Issue
Block a user