Ocean Sim modifier patch

by Matt Ebb, Hamed Zaghaghi

This adds a new Modifier "Ocean" to simulate large-scale wave motion.
Details can be found in the wiki documentation [1], the project homepage [2] and the patch tracker [3]

The modifier is disabled by default for now. To enable it, the WITH_OCEANSIM (cmake) / WITH_BF_OCEANSIM (scons) flags have to be set. The code depends on fftw3, so this also has to be enabled.

[1]
http://wiki.blender.org/index.php/Doc:2.6/Manual/Modifiers/Simulation/Ocean

[2]
http://www.savetheoceansim.com

[3]
http://projects.blender.org/tracker/?group_id=9&atid=127&func=detail&aid=28338
This commit is contained in:
Lukas Toenne
2011-11-13 12:17:27 +00:00
parent b1019a56b5
commit 11c83d8432
32 changed files with 3084 additions and 2 deletions

View File

@@ -414,6 +414,74 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.operator("object.multires_external_save", text="Save External...")
row.label()
def OCEAN(self, layout, ob, md):
col = layout.column()
if not md.build_enabled:
col.label("Built without OceanSim modifier")
return
col.prop(md, "geometry_mode")
if md.geometry_mode == 'GENERATE':
row = col.row()
row.prop(md, "repeat_x")
row.prop(md, "repeat_y")
col.separator()
col.prop(md, "time")
col.prop(md, "resolution")
colflow = col.column_flow()
colflow.prop(md, "spatial_size")
colflow.prop(md, "depth")
col.label("Waves:")
col.prop(md, "choppiness")
col.prop(md, "wave_scale", text="Scale")
col.prop(md, "wave_alignment", text="Alignment")
row = col.row()
row.active = md.wave_alignment > 0
row.prop(md, "wave_direction", text="Direction")
row.prop(md, "damp")
col.prop(md, "smallest_wave")
col.prop(md, "wind_velocity")
col = layout.column()
col.separator()
col.prop(md, "generate_normals")
split = col.split()
split.column().prop(md, "generate_foam")
col = split.column()
col.active = md.generate_foam
col.prop(md, "foam_coverage", text="Coverage")
col = layout.column()
col.separator()
if md.is_cached:
col.operator("object.ocean_bake", text="Free Bake").free=True
else:
col.operator("object.ocean_bake")
row = col.row()
row.enabled = not md.is_cached
row.prop(md, "bake_start", text="Start")
row.prop(md, "bake_end", text="End")
col.prop(md, "cachepath")
#col.prop(md, "bake_foam_fade")
def PARTICLE_INSTANCE(self, layout, ob, md):
layout.prop(md, "object")
layout.prop(md, "particle_system_index", text="Particle System")