[Bf-extensions-cvs] [0aacb34c] master: light_field_tools: move to contrib: T63750
meta-androcto
noreply at git.blender.org
Fri May 24 10:06:02 CEST 2019
Commit: 0aacb34c821740853d5de17aa7bd6f106ab63147
Author: meta-androcto
Date: Fri May 24 18:05:34 2019 +1000
Branches: master
https://developer.blender.org/rBA0aacb34c821740853d5de17aa7bd6f106ab63147
light_field_tools: move to contrib: T63750
===================================================================
D light_field_tools/__init__.py
D light_field_tools/light_field_tools.py
===================================================================
diff --git a/light_field_tools/__init__.py b/light_field_tools/__init__.py
deleted file mode 100644
index 17e32c8b..00000000
--- a/light_field_tools/__init__.py
+++ /dev/null
@@ -1,182 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-
-bl_info = {
- "name": "Light Field Tools",
- "author": "Aurel Wildfellner",
- "description": "Tools to create a light field camera and projector",
- "version": (0, 3, 1),
- "blender": (2, 64, 0),
- "location": "View3D > Tool Shelf > Light Field Tools",
- "url": "http://www.jku.at/cg/",
- "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
- "Scripts/Render/Light_Field_Tools",
- "category": "Render"
-}
-
-
-if "bpy" in locals():
- import importlib
- importlib.reload(light_field_tools)
-else:
- from . import light_field_tools
-
-
-import bpy
-from bpy.types import (
- AddonPreferences,
- PropertyGroup,
- )
-from bpy.props import (
- BoolProperty,
- FloatProperty,
- IntProperty,
- StringProperty,
- PointerProperty,
- )
-
-
-# global properties for the script, mainly for UI
-class LightFieldPropertyGroup(PropertyGroup):
- angle: FloatProperty(
- name="Angle",
- # 40 degrees
- default=0.69813170079,
- min=0,
- # 172 degrees
- max=3.001966313430247,
- precision=2,
- subtype='ANGLE',
- description="Field of view of camera and angle of beam for spotlights"
- )
- row_length: IntProperty(
- name="Row Length",
- default=1,
- min=1,
- description="The number of cameras/lights in one row"
- )
- create_handler: BoolProperty(
- name="Handler",
- default=True,
- description="Creates an empty object, to which the cameras and spotlights are parented to"
- )
- do_camera: BoolProperty(
- name="Create Camera",
- default=True,
- description="A light field camera is created"
- )
- animate_camera: BoolProperty(
- name="Animate Camera",
- default=True,
- description="Animates a single camera, so not multiple cameras get created"
- )
- do_projection: BoolProperty(
- name="Create Projector",
- default=False,
- description="A light field projector is created"
- )
- texture_path: StringProperty(
- name="Texture Path",
- description="From this path textures for the spotlights will be loaded",
- subtype='DIR_PATH'
- )
- light_intensity: FloatProperty(
- name="Light Intensity",
- default=2,
- min=0,
- precision=3,
- description="Total intensity of all lamps"
- )
- # blending of the spotlights
- spot_blend: FloatProperty(
- name="Blend",
- default=0,
- min=0,
- max=1,
- precision=3,
- description="Blending of the spotlights"
- )
- # spacing in pixels on the focal plane
- spacing: IntProperty(
- name="Spacing",
- default=10,
- min=0,
- description="The spacing in pixels between two cameras on the focal plane"
- )
-
-
-# Add-ons Preferences Update Panel
-
-# Define Panel classes for updating
-panels = (
- light_field_tools.VIEW3D_PT_lightfield_tools,
-)
-
-
-def update_panel(self, context):
- message = "Light Field Tools: Updating Panel locations has failed"
- try:
- for panel in panels:
- if "bl_rna" in panel.__dict__:
- bpy.utils.unregister_class(panel)
-
- for panel in panels:
- panel.bl_category = context.preferences.addons[__name__].preferences.category
- bpy.utils.register_class(panel)
-
- except Exception as e:
- print("\n[{}]\n{}\n\nError:\n{}".format(__name__, message, e))
- pass
-
-
-class LFTPreferences(AddonPreferences):
- # this must match the addon name, use '__package__'
- # when defining this in a submodule of a python package.
- bl_idname = __name__
-
- category: StringProperty(
- name="Tab Category",
- description="Choose a name for the category of the panel",
- default="Tools",
- update=update_panel
- )
-
- def draw(self, context):
- layout = self.layout
-
- row = layout.row()
- col = row.column()
- col.label(text="Tab Category:")
- col.prop(self, "category", text="")
-
-
-def register():
- # register properties
- # bpy.utils.register_class(LightFieldPropertyGroup)
- bpy.utils.register_module(__name__)
- bpy.types.Scene.lightfield = PointerProperty(type=LightFieldPropertyGroup)
-
-
-def unregister():
- bpy.utils.unregister_module(__name__)
- del bpy.types.Scene.lightfield
-
-
-if __name__ == "__main__":
- register()
diff --git a/light_field_tools/light_field_tools.py b/light_field_tools/light_field_tools.py
deleted file mode 100644
index 981905d5..00000000
--- a/light_field_tools/light_field_tools.py
+++ /dev/null
@@ -1,421 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-import bpy
-from bpy.types import (
- Operator,
- Panel,
- )
-import os
-from math import (
- degrees, tan,
- radians,
- )
-from mathutils import Vector
-
-__bpydoc__ = """
-Light Field Tools
-
-This script helps setting up rendering of lightfields. It
-also supports the projection of lightfields with textured
-spotlights.
-
-Usage:
-A simple interface can be accessed in the tool shelf panel
-in 3D View ([T] Key).
-
-A base mesh has to be provided, which will normally be a
-subdivided plane. The script will then create a camera rig
-and a light rig with adjustable properties. A sample camera
-and a spotlight will be created on each vertex of the
-basemesh object axis (maybe vertex normal in future
-versions).
-
- Vertex order:
- The user has to provide the number of cameras or
- lights in one row in an unevenly spaced grid, the
- basemesh. Then the right vertex order can be
- computed as shown here.
- 6-7-8
- | | |
- ^ 3-4-5
- | | | |
- y 0-1-2
- x->
-
-There is also a tool to create a basemesh, which is an
-evenly spaced grid. The row length parameter is taken to
-construct such a NxN grid. Someone would start out by adding
-a rectengular plane as the slice plane of the frustrum of
-the most middle camera of the light field rig. The spacing
-parameter then places the other cameras in a way, so they
-have an offset of n pixels from the other camera on this
-plane.
-
-
-Version history:
-v0.3.0 - Make compatible with 2.64
-v0.2.1 - Empty handler, multiple camera grid, r34843
-v0.2.0 - To be included in contrib, r34456
-v0.1.4 - To work with r34261
-v0.1.3 - Fixed base mesh creation for r29998
-v0.1.2 - Minor fixes, working with r29994
-v0.1.1 - Basemesh from focal plane.
-v0.1.0 - API updates, draft done.
-v0.0.4 - Texturing.
-v0.0.3 - Creates an array of non textured spotlights.
-v0.0.2 - Renders lightfields.
-v0.0.1 - Initial version.
-
-TODO:
-* Restore view after primary camera is changed.
-* Apply object matrix to normals.
-* Align to normals, somehow,....
-* StringProperties with PATH tag, for proper ui.
-"""
-
-
-class OBJECT_OT_create_lightfield_rig(Operator):
- bl_idname = "object.create_lightfield_rig"
- bl_label = "Create a light field rig"
- bl_description = "Create a lightfield rig based on the active object/mesh"
- bl_options = {'REGISTER'}
-
- layer0 = [True] + [False] * 19
-
- numSamples = 0
- baseObject = None
- handler = None
- verts = []
- imagePaths = []
-
- def arrangeVerts(self):
- """Sorts the vertices as described in the usage part of the doc."""
- # FIXME get mesh with applied modifer stack
- scene = bpy.context.scene
- mesh = self.baseObject.data
- verts = []
- row_length = scene.lightfield.row_length
- matrix = self.baseObject.matrix_local.copy()
- for vert in mesh.vertices:
- # world/parent origin
- # ???, normal and co are in different spaces, sure you want this?
- co = matrix * vert.co
- normal = vert.normal
- verts.append([co, normal])
-
- def key_x(v):
- return v[0][0]
-
- def key_y(v):
- return v[0][1]
-
- verts.sort(key=key_y)
- sorted_verts = []
- for i in r
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list