Merge branch 'master' into blender2.8
This commit is contained in:
commit
4c132dc503
|
@ -1 +1 @@
|
|||
{'handleType': '0', 'rotate': (99.5, 137.5, 137.5, 137.5), 'baseSize_s': 0.1600000560283661, 'af2': 1.0, 'pruneRatio': 0.75, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.5, 'boneStep': (1, 1, 1, 1), 'nrings': 0, 'leafScale': 0.4000000059604645, 'makeMesh': False, 'baseSize': 0.30000001192092896, 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'shapeS': '10', 'pruneBase': 0.11999999731779099, 'af3': 4.0, 'loopFrames': 0, 'horzLeaves': True, 'curveRes': (8, 5, 3, 1), 'minRadius': 0.001500000013038516, 'leafDist': '6', 'rotateV': (15.0, 0.0, 0.0, 0.0), 'bevel': True, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleV': 0.15000000596046448, 'prunePowerHigh': 0.5, 'rootFlare': 1.0, 'prune': False, 'branches': (0, 55, 10, 1), 'taperCrown': 0.5, 'useArm': False, 'splitBias': 0.5499999523162842, 'segSplits': (0.10000000149011612, 0.5, 0.20000000298023224, 0.0), 'resU': 4, 'useParentAngle': True, 'ratio': 0.014999999664723873, 'taper': (1.0, 1.0, 1.0, 1.0), 'length': (0.800000011920929, 0.6000000238418579, 0.5, 0.10000000149011612), 'scale0': 1.0, 'scaleV': 2.0, 'leafRotate': 137.5, 'shape': '7', 'scaleV0': 0.10000000149011612, 'leaves': 150, 'scale': 5.0, 'leafShape': 'hex', 'prunePowerLow': 0.0010000000474974513, 'splitAngle': (18.0, 18.0, 22.0, 0.0), 'seed': 0, 'showLeaves': True, 'downAngle': (0.0, 26.209999084472656, 52.55999755859375, 30.0), 'leafDownAngle': 30.0, 'autoTaper': True, 'rMode': 'rotate', 'leafScaleX': 0.20000000298023224, 'leafScaleT': 0.10000000149011612, 'gust': 1.0, 'armAnim': False, 'wind': 1.0, 'leafRotateV': 15.0, 'baseSplits': 3, 'attractOut': (0.0, 0.800000011920929, 0.0, 0.0), 'armLevels': 2, 'leafAnim': False, 'ratioPower': 1.2000000476837158, 'splitHeight': 0.20000000298023224, 'splitByLen': True, 'af1': 1.0, 'branchDist': 1.5, 'closeTip': False, 'previewArm': False, 'attractUp': (3.5, -1.899843692779541, 0.0, 0.0), 'bevelRes': 1, 'pruneWidth': 0.3400000035762787, 'gustF': 0.07500000298023224, 'leafangle': -12.0, 'curveV': (20.0, 50.0, 75.0, 0.0), 'useOldDownAngle': True, 'leafDownAngleV': -10.0, 'frameRate': 1.0, 'splitAngleV': (5.0, 5.0, 5.0, 0.0), 'levels': 2, 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'curve': (0.0, -15.0, 0.0, 0.0)}
|
||||
{'handleType': '0', 'rotate': (99.5, 137.5, 137.5, 137.5), 'baseSize_s': 0.1600000560283661, 'af2': 1.0, 'pruneRatio': 0.75, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.5, 'boneStep': (1, 1, 1, 1), 'nrings': 0, 'leafScale': 0.4000000059604645, 'makeMesh': False, 'baseSize': 0.30000001192092896, 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'shapeS': '10', 'pruneBase': 0.11999999731779099, 'af3': 4.0, 'loopFrames': 0, 'horzLeaves': True, 'curveRes': (8, 5, 3, 1), 'minRadius': 0.001500000013038516, 'leafDist': '6', 'rotateV': (15.0, 0.0, 0.0, 0.0), 'bevel': True, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleV': 0.15000000596046448, 'prunePowerHigh': 0.5, 'rootFlare': 1.0, 'prune': False, 'branches': (0, 55, 10, 1), 'taperCrown': 0.5, 'useArm': False, 'splitBias': 0.5499999523162842, 'segSplits': (0.10000000149011612, 0.5, 0.20000000298023224, 0.0), 'resU': 4, 'useParentAngle': True, 'ratio': 0.014999999664723873, 'taper': (1.0, 1.0, 1.0, 1.0), 'length': (0.800000011920929, 0.6000000238418579, 0.5, 0.10000000149011612), 'scale0': 1.0, 'scaleV': 2.0, 'leafRotate': 137.5, 'shape': '7', 'scaleV0': 0.10000000149011612, 'leaves': 150, 'scale': 5.0, 'leafShape': 'hex', 'prunePowerLow': 0.0010000000474974513, 'splitAngle': (18.0, 18.0, 22.0, 0.0), 'seed': 0, 'showLeaves': True, 'downAngle': (0.0, 26.209999084472656, 52.55999755859375, 30.0), 'leafDownAngle': 30.0, 'autoTaper': True, 'rMode': 'rotate', 'leafScaleX': 0.20000000298023224, 'leafScaleT': 0.10000000149011612, 'gust': 1.0, 'armAnim': False, 'wind': 1.0, 'leafRotateV': 15.0, 'baseSplits': 3, 'attractOut': (0.0, 0.800000011920929, 0.0, 0.0), 'armLevels': 2, 'leafAnim': False, 'ratioPower': 1.2000000476837158, 'splitHeight': 0.20000000298023224, 'splitByLen': True, 'af1': 1.0, 'branchDist': 1.5, 'closeTip': False, 'previewArm': False, 'attractUp': (3.5, -1.899843692779541, 0.0, 0.0), 'bevelRes': 1, 'pruneWidth': 0.3400000035762787, 'gustF': 0.07500000298023224, 'leafangle': -12.0, 'curveV': (20.0, 50.0, 75.0, 0.0), 'useOldDownAngle': True, 'leafDownAngleV': -10.0, 'frameRate': 1.0, 'splitAngleV': (5.0, 5.0, 5.0, 0.0), 'levels': 2, 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'curve': (0.0, -15.0, 0.0, 0.0)}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{'pruneRatio': 1.0, 'wind': 1.0, 'prune': False, 'splitByLen': True, 'attractUp': (0.0, 0.3499999940395355, 0.25, 0.15000000596046448), 'segSplits': (0.0, 0.3499999940395355, 0.6000000238418579, 0.0), 'rMode': 'rotate', 'rotate': (99.5, 137.5, -45.0, -60.0), 'curve': (0.0, 20.0, -10.0, 0.0), 'af2': 1.0, 'seed': 0, 'length': (1.0, 0.20000000298023224, 0.550000011920929, 0.44999998807907104), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafScaleT': 0.0, 'scaleV': 15.0, 'splitHeight': 0.20000000298023224, 'minRadius': 0.0020000000949949026, 'leafRotate': 137.5, 'curveRes': (12, 4, 3, 2), 'curveV': (40.0, 30.0, 15.0, 10.0), 'nrings': 0, 'levels': 4, 'frameRate': 1.0, 'ratioPower': 1.2000000476837158, 'leafDownAngle': 45.0, 'armLevels': 2, 'branches': (0, 75, 16, 10), 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'shape': '8', 'rotateV': (15.0, 0.0, 15.0, 45.0), 'loopFrames': 0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'taperCrown': 0.0, 'prunePowerLow': 0.0010000000474974513, 'handleType': '0', 'af3': 4.0, 'useParentAngle': True, 'customShape': (0.5, 1.0, 0.3499999940395355, 0.10000000149011612), 'scale0': 1.0, 'rootFlare': 1.2999999523162842, 'leafScaleV': 0.0, 'leafScale': 0.17000000178813934, 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'downAngleV': (0.0, 30.0, 10.0, 10.0), 'af1': 1.0, 'autoTaper': True, 'scale': 35.0, 'gustF': 0.07500000298023224, 'ratio': 0.014999999664723873, 'leafScaleX': 1.0, 'shapeS': '7', 'bevelRes': 1, 'bevel': True, 'leaves': 25, 'splitAngle': (0.0, 12.0, 18.0, 0.0), 'downAngle': (90.0, 130.0, 45.0, 45.0), 'previewArm': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'showLeaves': False, 'leafAnim': False, 'baseSize': 0.33000001311302185, 'gust': 1.0, 'horzLeaves': True, 'baseSize_s': 0.5, 'leafDownAngleV': 10.0, 'makeMesh': False, 'leafDist': '6', 'armAnim': False, 'baseSplits': 0, 'lengthV': (0.0, 0.10000000149011612, 0.25, 0.25), 'branchDist': 1.850000023841858, 'useArm': False, 'useOldDownAngle': False, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneBase': 0.30000001192092896, 'splitBias': 0.0, 'boneStep': (1, 1, 1, 1), 'leafShape': 'hex', 'resU': 4, 'prunePowerHigh': 0.5, 'closeTip': True, 'pruneWidth': 0.4000000059604645, 'leafRotateV': 0.0, 'pruneWidthPeak': 0.6000000238418579}
|
||||
{'pruneRatio': 1.0, 'wind': 1.0, 'prune': False, 'splitByLen': True, 'attractUp': (0.0, 0.3499999940395355, 0.25, 0.15000000596046448), 'segSplits': (0.0, 0.3499999940395355, 0.6000000238418579, 0.0), 'rMode': 'rotate', 'rotate': (99.5, 137.5, -45.0, -60.0), 'curve': (0.0, 20.0, -10.0, 0.0), 'af2': 1.0, 'seed': 0, 'length': (1.0, 0.20000000298023224, 0.550000011920929, 0.44999998807907104), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafScaleT': 0.0, 'scaleV': 15.0, 'splitHeight': 0.20000000298023224, 'minRadius': 0.0020000000949949026, 'leafRotate': 137.5, 'curveRes': (12, 4, 3, 2), 'curveV': (40.0, 30.0, 15.0, 10.0), 'nrings': 0, 'levels': 4, 'frameRate': 1.0, 'ratioPower': 1.2000000476837158, 'leafDownAngle': 45.0, 'armLevels': 2, 'branches': (0, 75, 16, 10), 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'shape': '8', 'rotateV': (15.0, 0.0, 15.0, 45.0), 'loopFrames': 0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'taperCrown': 0.0, 'prunePowerLow': 0.0010000000474974513, 'handleType': '0', 'af3': 4.0, 'useParentAngle': True, 'customShape': (0.5, 1.0, 0.3499999940395355, 0.10000000149011612), 'scale0': 1.0, 'rootFlare': 1.2999999523162842, 'leafScaleV': 0.0, 'leafScale': 0.17000000178813934, 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'downAngleV': (0.0, 30.0, 10.0, 10.0), 'af1': 1.0, 'autoTaper': True, 'scale': 35.0, 'gustF': 0.07500000298023224, 'ratio': 0.014999999664723873, 'leafScaleX': 1.0, 'shapeS': '7', 'bevelRes': 1, 'bevel': True, 'leaves': 25, 'splitAngle': (0.0, 12.0, 18.0, 0.0), 'downAngle': (90.0, 130.0, 45.0, 45.0), 'previewArm': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'showLeaves': False, 'leafAnim': False, 'baseSize': 0.33000001311302185, 'gust': 1.0, 'horzLeaves': True, 'baseSize_s': 0.5, 'leafDownAngleV': 10.0, 'makeMesh': False, 'leafDist': '6', 'armAnim': False, 'baseSplits': 0, 'lengthV': (0.0, 0.10000000149011612, 0.25, 0.25), 'branchDist': 1.850000023841858, 'useArm': False, 'useOldDownAngle': False, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneBase': 0.30000001192092896, 'splitBias': 0.0, 'boneStep': (1, 1, 1, 1), 'leafShape': 'hex', 'resU': 4, 'prunePowerHigh': 0.5, 'closeTip': True, 'pruneWidth': 0.4000000059604645, 'leafRotateV': 0.0, 'pruneWidthPeak': 0.6000000238418579}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{'leafScaleT': -0.5, 'shapeS': '10', 'scaleV': 2.0, 'resU': 4, 'boneStep': (1, 1, 1, 1), 'af3': 4.0, 'baseSize': 0.4000000059604645, 'prunePowerLow': 0.0010000000474974513, 'leafRotateV': 0.0, 'rootFlare': 1.0, 'customShape': (0.699999988079071, 1.0, 0.20000000298023224, 0.800000011920929), 'attractOut': (0.0, 0.75, 0.25, 0.0), 'useArm': False, 'branches': (0, 50, 10, 16), 'leafDownAngle': 45.0, 'length': (1.0, 0.30000001192092896, 0.5, 0.20000000298023224), 'segSplits': (0.25, 0.4000000059604645, 0.5, 0.0), 'makeMesh': False, 'curveV': (400.0, 150.0, 100.0, 0.0), 'curveBack': (0.0, 0.0, 0.0, 0.0), 'af1': 1.0, 'closeTip': False, 'frameRate': 1.0, 'leafangle': -10.0, 'af2': 1.0, 'rMode': 'rotate', 'leafScaleV': 0.0, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'useParentAngle': False, 'taperCrown': 0.0, 'minRadius': 0.001500000013038516, 'splitAngleV': (5.0, 5.0, 0.0, 0.0), 'scaleV0': 0.10000000149011612, 'bevel': True, 'leafDownAngleV': 10.0, 'previewArm': False, 'showLeaves': True, 'ratioPower': 1.25, 'handleType': '0', 'branchDist': 1.0, 'leafScaleX': 0.20000000298023224, 'prune': False, 'splitHeight': 0.30000001192092896, 'baseSplits': 2, 'baseSize_s': 0.25, 'downAngle': (90.0, 90.0, 30.0, 30.0), 'bevelRes': 1, 'leafAnim': False, 'loopFrames': 0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'downAngleV': (0.0, 90.0, 15.0, 10.0), 'leafRotate': 137.5, 'wind': 1.0, 'leaves': -5, 'curve': (0.0, -20.0, -20.0, 0.0), 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneRatio': 1.0, 'pruneBase': 0.30000001192092896, 'armAnim': False, 'splitBias': 0.0, 'rotate': (99.5, 137.5, 137.5, 137.5), 'armLevels': 2, 'scale': 6.0, 'prunePowerHigh': 0.5, 'nrings': 0, 'splitByLen': True, 'leafShape': 'hex', 'splitAngle': (15.0, 20.0, 25.0, 0.0), 'ratio': 0.019999999552965164, 'scale0': 1.0, 'autoTaper': True, 'pruneWidth': 0.4000000059604645, 'leafScale': 0.17000000178813934, 'seed': 0, 'curveRes': (16, 5, 3, 1), 'horzLeaves': True, 'useOldDownAngle': False, 'levels': 4, 'pruneWidthPeak': 0.6000000238418579, 'attractUp': (0.0, -0.3499999940395355, -0.20000000298023224, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'leafDist': '6', 'gustF': 0.07500000298023224, 'shape': '8'}
|
||||
{'leafScaleT': -0.5, 'shapeS': '10', 'scaleV': 2.0, 'resU': 4, 'boneStep': (1, 1, 1, 1), 'af3': 4.0, 'baseSize': 0.4000000059604645, 'prunePowerLow': 0.0010000000474974513, 'leafRotateV': 0.0, 'rootFlare': 1.0, 'customShape': (0.699999988079071, 1.0, 0.20000000298023224, 0.800000011920929), 'attractOut': (0.0, 0.75, 0.25, 0.0), 'useArm': False, 'branches': (0, 50, 10, 16), 'leafDownAngle': 45.0, 'length': (1.0, 0.30000001192092896, 0.5, 0.20000000298023224), 'segSplits': (0.25, 0.4000000059604645, 0.5, 0.0), 'makeMesh': False, 'curveV': (400.0, 150.0, 100.0, 0.0), 'curveBack': (0.0, 0.0, 0.0, 0.0), 'af1': 1.0, 'closeTip': False, 'frameRate': 1.0, 'leafangle': -10.0, 'af2': 1.0, 'rMode': 'rotate', 'leafScaleV': 0.0, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'useParentAngle': False, 'taperCrown': 0.0, 'minRadius': 0.001500000013038516, 'splitAngleV': (5.0, 5.0, 0.0, 0.0), 'scaleV0': 0.10000000149011612, 'bevel': True, 'leafDownAngleV': 10.0, 'previewArm': False, 'showLeaves': True, 'ratioPower': 1.25, 'handleType': '0', 'branchDist': 1.0, 'leafScaleX': 0.20000000298023224, 'prune': False, 'splitHeight': 0.30000001192092896, 'baseSplits': 2, 'baseSize_s': 0.25, 'downAngle': (90.0, 90.0, 30.0, 30.0), 'bevelRes': 1, 'leafAnim': False, 'loopFrames': 0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'downAngleV': (0.0, 90.0, 15.0, 10.0), 'leafRotate': 137.5, 'wind': 1.0, 'leaves': -5, 'curve': (0.0, -20.0, -20.0, 0.0), 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneRatio': 1.0, 'pruneBase': 0.30000001192092896, 'armAnim': False, 'splitBias': 0.0, 'rotate': (99.5, 137.5, 137.5, 137.5), 'armLevels': 2, 'scale': 6.0, 'prunePowerHigh': 0.5, 'nrings': 0, 'splitByLen': True, 'leafShape': 'hex', 'splitAngle': (15.0, 20.0, 25.0, 0.0), 'ratio': 0.019999999552965164, 'scale0': 1.0, 'autoTaper': True, 'pruneWidth': 0.4000000059604645, 'leafScale': 0.17000000178813934, 'seed': 0, 'curveRes': (16, 5, 3, 1), 'horzLeaves': True, 'useOldDownAngle': False, 'levels': 4, 'pruneWidthPeak': 0.6000000238418579, 'attractUp': (0.0, -0.3499999940395355, -0.20000000298023224, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'leafDist': '6', 'gustF': 0.07500000298023224, 'shape': '8'}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{'leafScale': 0.17000000178813934, 'autoTaper': True, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'curve': (0.0, -40.0, -40.0, 0.0), 'ratio': 0.014999999664723873, 'splitBias': 0.0, 'pruneWidth': 0.4000000059604645, 'downAngleV': (0.0, 80.0, 10.0, 10.0), 'rotate': (99.5, 137.5, 137.5, 137.5), 'pruneRatio': 1.0, 'leafDownAngle': 45.0, 'makeMesh': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'rMode': 'rotate', 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'branchDist': 1.0, 'bevel': False, 'minRadius': 0.001500000013038516, 'prune': False, 'leafRotateV': 0.0, 'splitAngle': (0.0, 0.0, 0.0, 0.0), 'armAnim': False, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'taperCrown': 0.0, 'baseSplits': 0, 'baseSize_s': 0.25, 'handleType': '0', 'baseSize': 0.4000000059604645, 'af1': 1.0, 'levels': 2, 'leafScaleV': 0.0, 'resU': 4, 'seed': 0, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'prunePowerHigh': 0.5, 'splitByLen': True, 'wind': 1.0, 'shape': '7', 'prunePowerLow': 0.0010000000474974513, 'scale': 13.0, 'leafAnim': False, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleX': 1.0, 'horzLeaves': True, 'splitHeight': 0.20000000298023224, 'leafScaleT': 0.0, 'scaleV': 3.0, 'leafDist': '6', 'nrings': 0, 'curveRes': (8, 5, 3, 1), 'shapeS': '4', 'bevelRes': 0, 'useOldDownAngle': False, 'useParentAngle': True, 'armLevels': 2, 'scale0': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.6000000238418579, 'previewArm': False, 'leaves': 25, 'ratioPower': 1.100000023841858, 'gustF': 0.07500000298023224, 'curveV': (20.0, 50.0, 75.0, 0.0), 'showLeaves': False, 'frameRate': 1.0, 'length': (1.0, 0.30000001192092896, 0.6000000238418579, 0.44999998807907104), 'branches': (0, 50, 30, 10), 'useArm': False, 'loopFrames': 0, 'gust': 1.0, 'af3': 4.0, 'closeTip': False, 'leafRotate': 137.5, 'attractUp': (0.0, 0.0, 0.5, 0.5), 'leafDownAngleV': 10.0, 'rootFlare': 1.0, 'af2': 1.0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'rotateV': (15.0, 0.0, 0.0, 0.0), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'segSplits': (0.0, 0.0, 0.0, 0.0)}
|
||||
{'leafScale': 0.17000000178813934, 'autoTaper': True, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'curve': (0.0, -40.0, -40.0, 0.0), 'ratio': 0.014999999664723873, 'splitBias': 0.0, 'pruneWidth': 0.4000000059604645, 'downAngleV': (0.0, 80.0, 10.0, 10.0), 'rotate': (99.5, 137.5, 137.5, 137.5), 'pruneRatio': 1.0, 'leafDownAngle': 45.0, 'makeMesh': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'rMode': 'rotate', 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'branchDist': 1.0, 'bevel': False, 'minRadius': 0.001500000013038516, 'prune': False, 'leafRotateV': 0.0, 'splitAngle': (0.0, 0.0, 0.0, 0.0), 'armAnim': False, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'taperCrown': 0.0, 'baseSplits': 0, 'baseSize_s': 0.25, 'handleType': '0', 'baseSize': 0.4000000059604645, 'af1': 1.0, 'levels': 2, 'leafScaleV': 0.0, 'resU': 4, 'seed': 0, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'prunePowerHigh': 0.5, 'splitByLen': True, 'wind': 1.0, 'shape': '7', 'prunePowerLow': 0.0010000000474974513, 'scale': 13.0, 'leafAnim': False, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleX': 1.0, 'horzLeaves': True, 'splitHeight': 0.20000000298023224, 'leafScaleT': 0.0, 'scaleV': 3.0, 'leafDist': '6', 'nrings': 0, 'curveRes': (8, 5, 3, 1), 'shapeS': '4', 'bevelRes': 0, 'useOldDownAngle': False, 'useParentAngle': True, 'armLevels': 2, 'scale0': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.6000000238418579, 'previewArm': False, 'leaves': 25, 'ratioPower': 1.100000023841858, 'gustF': 0.07500000298023224, 'curveV': (20.0, 50.0, 75.0, 0.0), 'showLeaves': False, 'frameRate': 1.0, 'length': (1.0, 0.30000001192092896, 0.6000000238418579, 0.44999998807907104), 'branches': (0, 50, 30, 10), 'useArm': False, 'loopFrames': 0, 'gust': 1.0, 'af3': 4.0, 'closeTip': False, 'leafRotate': 137.5, 'attractUp': (0.0, 0.0, 0.5, 0.5), 'leafDownAngleV': 10.0, 'rootFlare': 1.0, 'af2': 1.0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'rotateV': (15.0, 0.0, 0.0, 0.0), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'segSplits': (0.0, 0.0, 0.0, 0.0)}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{'leafDownAngle': 45.0, 'handleType': '0', 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'useArm': False, 'rootFlare': 1.0, 'segSplits': (0.44999998807907104, 0.5, 0.800000011920929, 0.0), 'leafRotateV': 0.0, 'leaves': 32, 'baseSplits': 1, 'rotate': (99.5, 137.5, 137.5, 137.5), 'scale': 8.0, 'makeMesh': False, 'leafDownAngleV': 10.0, 'curve': (0.0, 30.0, 0.0, 0.0), 'splitBias': 0.0, 'leafScale': 0.18000000715255737, 'levels': 3, 'leafScaleT': 0.3499999940395355, 'seed': 0, 'autoTaper': True, 'pruneWidthPeak': 0.6000000238418579, 'branchDist': 1.25, 'prune': False, 'splitAngle': (8.0, 18.0, 18.0, 0.0), 'shapeS': '7', 'useParentAngle': True, 'af1': 1.0, 'armAnim': False, 'resU': 4, 'ratioPower': 1.2000000476837158, 'scaleV': 2.0, 'splitHeight': 0.20000000298023224, 'leafRotate': 137.5, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'shape': '7', 'ratio': 0.019999999552965164, 'rMode': 'rotate', 'downAngle': (90.0, 48.0, 45.0, 45.0), 'bevelRes': 2, 'showLeaves': True, 'wind': 1.0, 'loopFrames': 0, 'splitByLen': True, 'lengthV': (0.0, 0.029999999329447746, 0.15000000596046448, 0.0), 'leafShape': 'hex', 'downAngleV': (0.0, 48.0, 10.0, 10.0), 'leafangle': -35.0, 'bevel': True, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'previewArm': False, 'frameRate': 1.0, 'curveBack': (0.0, -30.0, -20.0, 0.0), 'taperCrown': 0.20000000298023224, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'scaleV0': 0.20000000298023224, 'gust': 1.0, 'horzLeaves': True, 'attractUp': (-0.5, -0.699999988079071, 0.0, 0.0), 'splitAngleV': (2.0, 5.0, 5.0, 0.0), 'pruneRatio': 1.0, 'curveV': (10.0, 35.0, 35.0, 0.0), 'prunePowerHigh': 0.5, 'closeTip': False, 'leafScaleV': 0.20000000298023224, 'leafAnim': False, 'minRadius': 0.0020000000949949026, 'af3': 4.0, 'attractOut': (0.0, 0.4000000059604645, 0.5, 0.0), 'branches': (0, 110, 18, 10), 'leafScaleX': 0.6499999761581421, 'length': (1.0, 0.46000000834465027, 0.44999998807907104, 0.44999998807907104), 'useOldDownAngle': False, 'armLevels': 2, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'curveRes': (8, 5, 3, 1), 'prunePowerLow': 0.0010000000474974513, 'af2': 1.0, 'pruneWidth': 0.4000000059604645, 'nrings': 0, 'baseSize_s': 0.25, 'baseSize': 0.2800000011920929, 'leafDist': '6', 'scale0': 1.0}
|
||||
{'leafDownAngle': 45.0, 'handleType': '0', 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'useArm': False, 'rootFlare': 1.0, 'segSplits': (0.44999998807907104, 0.5, 0.800000011920929, 0.0), 'leafRotateV': 0.0, 'leaves': 32, 'baseSplits': 1, 'rotate': (99.5, 137.5, 137.5, 137.5), 'scale': 8.0, 'makeMesh': False, 'leafDownAngleV': 10.0, 'curve': (0.0, 30.0, 0.0, 0.0), 'splitBias': 0.0, 'leafScale': 0.18000000715255737, 'levels': 3, 'leafScaleT': 0.3499999940395355, 'seed': 0, 'autoTaper': True, 'pruneWidthPeak': 0.6000000238418579, 'branchDist': 1.25, 'prune': False, 'splitAngle': (8.0, 18.0, 18.0, 0.0), 'shapeS': '7', 'useParentAngle': True, 'af1': 1.0, 'armAnim': False, 'resU': 4, 'ratioPower': 1.2000000476837158, 'scaleV': 2.0, 'splitHeight': 0.20000000298023224, 'leafRotate': 137.5, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'shape': '7', 'ratio': 0.019999999552965164, 'rMode': 'rotate', 'downAngle': (90.0, 48.0, 45.0, 45.0), 'bevelRes': 2, 'showLeaves': True, 'wind': 1.0, 'loopFrames': 0, 'splitByLen': True, 'lengthV': (0.0, 0.029999999329447746, 0.15000000596046448, 0.0), 'leafShape': 'hex', 'downAngleV': (0.0, 48.0, 10.0, 10.0), 'leafangle': -35.0, 'bevel': True, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'previewArm': False, 'frameRate': 1.0, 'curveBack': (0.0, -30.0, -20.0, 0.0), 'taperCrown': 0.20000000298023224, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'scaleV0': 0.20000000298023224, 'gust': 1.0, 'horzLeaves': True, 'attractUp': (-0.5, -0.699999988079071, 0.0, 0.0), 'splitAngleV': (2.0, 5.0, 5.0, 0.0), 'pruneRatio': 1.0, 'curveV': (10.0, 35.0, 35.0, 0.0), 'prunePowerHigh': 0.5, 'closeTip': False, 'leafScaleV': 0.20000000298023224, 'leafAnim': False, 'minRadius': 0.0020000000949949026, 'af3': 4.0, 'attractOut': (0.0, 0.4000000059604645, 0.5, 0.0), 'branches': (0, 110, 18, 10), 'leafScaleX': 0.6499999761581421, 'length': (1.0, 0.46000000834465027, 0.44999998807907104, 0.44999998807907104), 'useOldDownAngle': False, 'armLevels': 2, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'curveRes': (8, 5, 3, 1), 'prunePowerLow': 0.0010000000474974513, 'af2': 1.0, 'pruneWidth': 0.4000000059604645, 'nrings': 0, 'baseSize_s': 0.25, 'baseSize': 0.2800000011920929, 'leafDist': '6', 'scale0': 1.0}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{'downAngleV': (0.0, 42.0, 10.0, 10.0), 'useOldDownAngle': False, 'splitBias': 0.0, 'branchDist': 1.600000023841858, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafScale': 0.20000000298023224, 'baseSize': 0.06799984723329544, 'shapeS': '4', 'leafScaleX': 0.019999999552965164, 'nrings': 7, 'gustF': 0.07500000298023224, 'showLeaves': True, 'taperCrown': 0.0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafShape': 'rect', 'makeMesh': False, 'scale0': 1.0, 'length': (1.0, 0.3199999928474426, 0.75, 0.44999998807907104), 'ratioPower': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'baseSize_s': 0.25, 'splitHeight': 0.20000000298023224, 'handleType': '0', 'pruneBase': 0.30000001192092896, 'attractUp': (2.0, 0.0, 0.5, 0.5), 'boneStep': (1, 1, 1, 1), 'seed': 0, 'leafDownAngle': 65.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafAnim': False, 'gust': 1.0, 'curveV': (100.0, 100.0, 100.0, 0.0), 'splitAngle': (0.0, 22.0, 25.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafangle': -10.0, 'frameRate': 1.0, 'pruneRatio': 1.0, 'rMode': 'rotate', 'shape': '8', 'segSplits': (0.0, 0.30000001192092896, 0.4000000059604645, 0.0), 'branches': (0, 36, 7, 10), 'prunePowerHigh': 0.5, 'af1': 1.0, 'closeTip': False, 'splitAngleV': (0.0, 5.0, 0.0, 0.0), 'ratio': 0.019999999552965164, 'minRadius': 0.001500000013038516, 'levels': 3, 'leafRotate': 137.5, 'armLevels': 2, 'horzLeaves': False, 'pruneWidth': 0.4000000059604645, 'baseSplits': 0, 'scale': 4.0, 'leafScaleV': 0.10000000149011612, 'splitByLen': True, 'useParentAngle': True, 'previewArm': False, 'wind': 1.0, 'leafDist': '3', 'leafScaleT': 0.25, 'bevel': True, 'resU': 4, 'leafDownAngleV': 55.0, 'pruneWidthPeak': 0.6000000238418579, 'af3': 4.0, 'scaleV': 1.0, 'rootFlare': 1.0, 'loopFrames': 0, 'curve': (0.0, -40.0, -30.0, 0.0), 'leaves': 500, 'scaleV0': 0.10000000149011612, 'rotate': (99.5, 137.5, -90.0, 137.5), 'curveRes': (8, 5, 3, 1), 'useArm': False, 'af2': 1.0, 'bevelRes': 2, 'autoTaper': True, 'lengthV': (0.0, 0.15000000596046448, 0.25, 0.0), 'armAnim': False, 'prune': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafRotateV': 30.0, 'customShape': (0.8999999761581421, 1.0, 0.20000000298023224, 0.20000000298023224), 'rotateV': (15.0, 0.0, 0.0, 0.0)}
|
||||
{'downAngleV': (0.0, 42.0, 10.0, 10.0), 'useOldDownAngle': False, 'splitBias': 0.0, 'branchDist': 1.600000023841858, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafScale': 0.20000000298023224, 'baseSize': 0.06799984723329544, 'shapeS': '4', 'leafScaleX': 0.019999999552965164, 'nrings': 7, 'gustF': 0.07500000298023224, 'showLeaves': True, 'taperCrown': 0.0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafShape': 'rect', 'makeMesh': False, 'scale0': 1.0, 'length': (1.0, 0.3199999928474426, 0.75, 0.44999998807907104), 'ratioPower': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'baseSize_s': 0.25, 'splitHeight': 0.20000000298023224, 'handleType': '0', 'pruneBase': 0.30000001192092896, 'attractUp': (2.0, 0.0, 0.5, 0.5), 'boneStep': (1, 1, 1, 1), 'seed': 0, 'leafDownAngle': 65.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafAnim': False, 'gust': 1.0, 'curveV': (100.0, 100.0, 100.0, 0.0), 'splitAngle': (0.0, 22.0, 25.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafangle': -10.0, 'frameRate': 1.0, 'pruneRatio': 1.0, 'rMode': 'rotate', 'shape': '8', 'segSplits': (0.0, 0.30000001192092896, 0.4000000059604645, 0.0), 'branches': (0, 36, 7, 10), 'prunePowerHigh': 0.5, 'af1': 1.0, 'closeTip': False, 'splitAngleV': (0.0, 5.0, 0.0, 0.0), 'ratio': 0.019999999552965164, 'minRadius': 0.001500000013038516, 'levels': 3, 'leafRotate': 137.5, 'armLevels': 2, 'horzLeaves': False, 'pruneWidth': 0.4000000059604645, 'baseSplits': 0, 'scale': 4.0, 'leafScaleV': 0.10000000149011612, 'splitByLen': True, 'useParentAngle': True, 'previewArm': False, 'wind': 1.0, 'leafDist': '3', 'leafScaleT': 0.25, 'bevel': True, 'resU': 4, 'leafDownAngleV': 55.0, 'pruneWidthPeak': 0.6000000238418579, 'af3': 4.0, 'scaleV': 1.0, 'rootFlare': 1.0, 'loopFrames': 0, 'curve': (0.0, -40.0, -30.0, 0.0), 'leaves': 500, 'scaleV0': 0.10000000149011612, 'rotate': (99.5, 137.5, -90.0, 137.5), 'curveRes': (8, 5, 3, 1), 'useArm': False, 'af2': 1.0, 'bevelRes': 2, 'autoTaper': True, 'lengthV': (0.0, 0.15000000596046448, 0.25, 0.0), 'armAnim': False, 'prune': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafRotateV': 30.0, 'customShape': (0.8999999761581421, 1.0, 0.20000000298023224, 0.20000000298023224), 'rotateV': (15.0, 0.0, 0.0, 0.0)}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{'showLeaves': False, 'leafScaleX': 0.20000000298023224, 'horzLeaves': False, 'useArm': False, 'rMode': 'rotate', 'branchDist': 1.5, 'scale': 15.0, 'armLevels': 2, 'gustF': 0.07500000298023224, 'closeTip': False, 'shape': '4', 'minRadius': 0.001500000013038516, 'leafScaleT': 0.0, 'leafDownAngle': 30.0, 'splitByLen': True, 'prunePowerLow': 0.0010000000474974513, 'splitBias': 0.0, 'autoTaper': True, 'leafRotateV': 30.0, 'scale0': 1.0, 'length': (0.75, 0.5, 1.5, 0.10000000149011612), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'bevel': True, 'baseSize': 0.20000000298023224, 'handleType': '1', 'ratioPower': 1.75, 'leafScaleV': 0.0, 'ratio': 0.02500000037252903, 'scaleV': 5.0, 'gust': 1.0, 'baseSplits': 2, 'loopFrames': 0, 'curve': (0.0, 20.0, -40.0, 0.0), 'pruneWidth': 0.5, 'shapeS': '4', 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'branches': (0, 35, 15, 1), 'frameRate': 1.0, 'splitAngle': (12.0, 30.0, 16.0, 0.0), 'seed': 2789, 'nrings': 0, 'previewArm': False, 'pruneWidthPeak': 0.6000000238418579, 'af1': 1.0, 'splitHeight': 0.20000000298023224, 'rotateV': (15.0, 15.0, 45.0, 0.0), 'attractUp': (0.0, 0.0, -2.75, -3.0), 'curveV': (150.0, 120.0, 0.0, 0.0), 'makeMesh': False, 'leaves': 150, 'curveBack': (0.0, 20.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'resU': 4, 'useOldDownAngle': False, 'pruneRatio': 0.800000011920929, 'levels': 3, 'taperCrown': 0.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafRotate': 137.5, 'prunePowerHigh': 0.20000000298023224, 'prune': False, 'leafangle': 0.0, 'bevelRes': 1, 'curveRes': (8, 16, 8, 1), 'rotate': (99.5, 137.5, -60.0, 140.0), 'pruneBase': 0.07000000029802322, 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'scaleV0': 0.0, 'boneStep': (1, 1, 1, 1), 'useParentAngle': True, 'armAnim': False, 'wind': 1.0, 'leafDist': '10', 'leafScale': 0.25, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafDownAngleV': 10.0, 'leafAnim': False, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'af2': 1.0, 'af3': 4.0, 'downAngleV': (0.0, 20.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'rootFlare': 1.0, 'baseSize_s': 0.25}
|
||||
{'showLeaves': False, 'leafScaleX': 0.20000000298023224, 'horzLeaves': False, 'useArm': False, 'rMode': 'rotate', 'branchDist': 1.5, 'scale': 15.0, 'armLevels': 2, 'gustF': 0.07500000298023224, 'closeTip': False, 'shape': '4', 'minRadius': 0.001500000013038516, 'leafScaleT': 0.0, 'leafDownAngle': 30.0, 'splitByLen': True, 'prunePowerLow': 0.0010000000474974513, 'splitBias': 0.0, 'autoTaper': True, 'leafRotateV': 30.0, 'scale0': 1.0, 'length': (0.75, 0.5, 1.5, 0.10000000149011612), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'bevel': True, 'baseSize': 0.20000000298023224, 'handleType': '1', 'ratioPower': 1.75, 'leafScaleV': 0.0, 'ratio': 0.02500000037252903, 'scaleV': 5.0, 'gust': 1.0, 'baseSplits': 2, 'loopFrames': 0, 'curve': (0.0, 20.0, -40.0, 0.0), 'pruneWidth': 0.5, 'shapeS': '4', 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'branches': (0, 35, 15, 1), 'frameRate': 1.0, 'splitAngle': (12.0, 30.0, 16.0, 0.0), 'seed': 2789, 'nrings': 0, 'previewArm': False, 'pruneWidthPeak': 0.6000000238418579, 'af1': 1.0, 'splitHeight': 0.20000000298023224, 'rotateV': (15.0, 15.0, 45.0, 0.0), 'attractUp': (0.0, 0.0, -2.75, -3.0), 'curveV': (150.0, 120.0, 0.0, 0.0), 'makeMesh': False, 'leaves': 150, 'curveBack': (0.0, 20.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'resU': 4, 'useOldDownAngle': False, 'pruneRatio': 0.800000011920929, 'levels': 3, 'taperCrown': 0.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafRotate': 137.5, 'prunePowerHigh': 0.20000000298023224, 'prune': False, 'leafangle': 0.0, 'bevelRes': 1, 'curveRes': (8, 16, 8, 1), 'rotate': (99.5, 137.5, -60.0, 140.0), 'pruneBase': 0.07000000029802322, 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'scaleV0': 0.0, 'boneStep': (1, 1, 1, 1), 'useParentAngle': True, 'armAnim': False, 'wind': 1.0, 'leafDist': '10', 'leafScale': 0.25, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafDownAngleV': 10.0, 'leafAnim': False, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'af2': 1.0, 'af3': 4.0, 'downAngleV': (0.0, 20.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'rootFlare': 1.0, 'baseSize_s': 0.25}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{'seed': 0, 'showLeaves': True, 'armLevels': 0, 'leafDist': '6', 'baseSize': 0.3499999940395355, 'loopFrames': 0, 'af3': 4.0, 'previewArm': False, 'leafangle': -45.0, 'useParentAngle': True, 'handleType': '0', 'branches': (0, 60, 30, 10), 'autoTaper': True, 'splitAngle': (12.0, 18.0, 16.0, 0.0), 'baseSize_s': 0.800000011920929, 'closeTip': False, 'af2': 1.0, 'prune': False, 'scale0': 1.0, 'rMode': 'rotate', 'useOldDownAngle': False, 'scaleV0': 0.10000000149011612, 'splitBias': 0.0, 'resU': 2, 'curveBack': (0.0, -5.0, 0.0, 0.0), 'scale': 12.0, 'shape': '8', 'leafDownAngle': 45.0, 'af1': 1.0, 'ratio': 0.019999999552965164, 'horzLeaves': True, 'leafRotate': 137.5, 'minRadius': 0.0020000000949949026, 'bevelRes': 2, 'splitByLen': True, 'rootFlare': 1.149999976158142, 'makeMesh': False, 'downAngleV': (0.0, 25.0, 30.0, 10.0), 'levels': 3, 'scaleV': 2.0, 'armAnim': False, 'lengthV': (0.05000000074505806, 0.20000000298023224, 0.3499999940395355, 0.0), 'pruneWidth': 0.3100000023841858, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'splitAngleV': (2.0, 2.0, 0.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafScaleT': 0.20000000298023224, 'leafScaleX': 0.5, 'leafRotateV': 0.0, 'ratioPower': 1.399999976158142, 'segSplits': (0.3499999940395355, 0.3499999940395355, 0.3499999940395355, 0.0), 'downAngle': (90.0, 60.0, 50.0, 45.0), 'rotateV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'attractUp': (0.0, -1.0, -0.6499999761581421, 0.0), 'leafScaleV': 0.25, 'frameRate': 1.0, 'curveV': (100.0, 80.0, 80.0, 0.0), 'boneStep': (1, 1, 1, 1), 'customShape': (0.699999988079071, 1.0, 0.30000001192092896, 0.5900000333786011), 'pruneBase': 0.30000001192092896, 'leafAnim': False, 'curveRes': (10, 8, 3, 1), 'nrings': 0, 'bevel': True, 'taperCrown': 0.0, 'baseSplits': 2, 'leafShape': 'hex', 'splitHeight': 0.550000011920929, 'wind': 1.0, 'curve': (0.0, -30.0, -25.0, 0.0), 'rotate': (137.5, 137.5, 137.5, 137.5), 'length': (1.0, 0.33000001311302185, 0.375, 0.44999998807907104), 'leafScale': 0.20000000298023224, 'attractOut': (0.0, 0.20000000298023224, 0.25, 0.0), 'prunePowerHigh': 0.10000000149011612, 'branchDist': 1.5, 'useArm': False, 'pruneRatio': 1.0, 'shapeS': '7', 'leafDownAngleV': 10.0, 'pruneWidthPeak': 0.5, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leaves': 16}
|
||||
{'seed': 0, 'showLeaves': True, 'armLevels': 0, 'leafDist': '6', 'baseSize': 0.3499999940395355, 'loopFrames': 0, 'af3': 4.0, 'previewArm': False, 'leafangle': -45.0, 'useParentAngle': True, 'handleType': '0', 'branches': (0, 60, 30, 10), 'autoTaper': True, 'splitAngle': (12.0, 18.0, 16.0, 0.0), 'baseSize_s': 0.800000011920929, 'closeTip': False, 'af2': 1.0, 'prune': False, 'scale0': 1.0, 'rMode': 'rotate', 'useOldDownAngle': False, 'scaleV0': 0.10000000149011612, 'splitBias': 0.0, 'resU': 2, 'curveBack': (0.0, -5.0, 0.0, 0.0), 'scale': 12.0, 'shape': '8', 'leafDownAngle': 45.0, 'af1': 1.0, 'ratio': 0.019999999552965164, 'horzLeaves': True, 'leafRotate': 137.5, 'minRadius': 0.0020000000949949026, 'bevelRes': 2, 'splitByLen': True, 'rootFlare': 1.149999976158142, 'makeMesh': False, 'downAngleV': (0.0, 25.0, 30.0, 10.0), 'levels': 3, 'scaleV': 2.0, 'armAnim': False, 'lengthV': (0.05000000074505806, 0.20000000298023224, 0.3499999940395355, 0.0), 'pruneWidth': 0.3100000023841858, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'splitAngleV': (2.0, 2.0, 0.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafScaleT': 0.20000000298023224, 'leafScaleX': 0.5, 'leafRotateV': 0.0, 'ratioPower': 1.399999976158142, 'segSplits': (0.3499999940395355, 0.3499999940395355, 0.3499999940395355, 0.0), 'downAngle': (90.0, 60.0, 50.0, 45.0), 'rotateV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'attractUp': (0.0, -1.0, -0.6499999761581421, 0.0), 'leafScaleV': 0.25, 'frameRate': 1.0, 'curveV': (100.0, 80.0, 80.0, 0.0), 'boneStep': (1, 1, 1, 1), 'customShape': (0.699999988079071, 1.0, 0.30000001192092896, 0.5900000333786011), 'pruneBase': 0.30000001192092896, 'leafAnim': False, 'curveRes': (10, 8, 3, 1), 'nrings': 0, 'bevel': True, 'taperCrown': 0.0, 'baseSplits': 2, 'leafShape': 'hex', 'splitHeight': 0.550000011920929, 'wind': 1.0, 'curve': (0.0, -30.0, -25.0, 0.0), 'rotate': (137.5, 137.5, 137.5, 137.5), 'length': (1.0, 0.33000001311302185, 0.375, 0.44999998807907104), 'leafScale': 0.20000000298023224, 'attractOut': (0.0, 0.20000000298023224, 0.25, 0.0), 'prunePowerHigh': 0.10000000149011612, 'branchDist': 1.5, 'useArm': False, 'pruneRatio': 1.0, 'shapeS': '7', 'leafDownAngleV': 10.0, 'pruneWidthPeak': 0.5, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leaves': 16}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{'curveRes': (8, 16, 12, 1), 'scaleV0': 0.0, 'pruneRatio': 1.0, 'rotate': (0.0, -120.0, -120.0, 140.0), 'resU': 4, 'levels': 2, 'frameRate': 1.0, 'ratioPower': 2.0, 'windGust': 0.0, 'branches': (0, 25, 10, 300), 'attractUp': -3.0, 'bevel': False, 'windSpeed': 2.0, 'rotateV': (0.0, 30.0, 30.0, 0.0), 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'handleType': '1', 'shape': '3', 'curveV': (120.0, 90.0, 0.0, 0.0), 'scale': 15.0, 'leafShape': 'hex', 'showLeaves': False, 'ratio': 0.029999999329447746, 'leaves': 15.0, 'armAnim': False, 'leafScale': 0.11999999731779099, 'leafDist': '4', 'useArm': False, 'splitAngle': (3.0, 30.0, 45.0, 0.0), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'seed': 0, 'scaleV': 5.0, 'startCurv': 0.0, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'pruneWidth': 0.4000000059604645, 'baseSize': 0.05000000074505806, 'bevelRes': 0, 'length': (0.800000011920929, 0.5, 1.5, 0.10000000149011612), 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'prune': False, 'curve': (0.0, 40.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'prunePowerHigh': 0.5, 'leafScaleX': 0.20000000298023224, 'curveBack': (20.0, 80.0, 0.0, 0.0), 'bend': 0.0, 'scale0': 1.0, 'prunePowerLow': 0.0010000000474974513, 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'baseSplits': 2, 'pruneWidthPeak': 0.6000000238418579}
|
||||
{'curveRes': (8, 16, 12, 1), 'scaleV0': 0.0, 'pruneRatio': 1.0, 'rotate': (0.0, -120.0, -120.0, 140.0), 'resU': 4, 'levels': 2, 'frameRate': 1.0, 'ratioPower': 2.0, 'windGust': 0.0, 'branches': (0, 25, 10, 300), 'attractUp': -3.0, 'bevel': False, 'windSpeed': 2.0, 'rotateV': (0.0, 30.0, 30.0, 0.0), 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'handleType': '1', 'shape': '3', 'curveV': (120.0, 90.0, 0.0, 0.0), 'scale': 15.0, 'leafShape': 'hex', 'showLeaves': False, 'ratio': 0.029999999329447746, 'leaves': 15.0, 'armAnim': False, 'leafScale': 0.11999999731779099, 'leafDist': '4', 'useArm': False, 'splitAngle': (3.0, 30.0, 45.0, 0.0), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'seed': 0, 'scaleV': 5.0, 'startCurv': 0.0, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'pruneWidth': 0.4000000059604645, 'baseSize': 0.05000000074505806, 'bevelRes': 0, 'length': (0.800000011920929, 0.5, 1.5, 0.10000000149011612), 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'prune': False, 'curve': (0.0, 40.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'prunePowerHigh': 0.5, 'leafScaleX': 0.20000000298023224, 'curveBack': (20.0, 80.0, 0.0, 0.0), 'bend': 0.0, 'scale0': 1.0, 'prunePowerLow': 0.0010000000474974513, 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'baseSplits': 2, 'pruneWidthPeak': 0.6000000238418579}
|
||||
|
|
|
@ -236,19 +236,19 @@ class add_mesh_bolt(Operator, AddObjectHelper):
|
|||
max=MAX_INPUT_NUMBER,
|
||||
description='Flat distance of the Hex Nut'
|
||||
)
|
||||
|
||||
|
||||
# generic transform props
|
||||
view_align = BoolProperty(
|
||||
name="Align to View",
|
||||
default=False,
|
||||
update=AddObjectHelper.view_align_update_callback,
|
||||
)
|
||||
|
||||
|
||||
location = FloatVectorProperty(
|
||||
name="Location",
|
||||
subtype='TRANSLATION',
|
||||
)
|
||||
|
||||
|
||||
rotation = FloatVectorProperty(
|
||||
name="Rotation",
|
||||
subtype='EULER',
|
||||
|
@ -311,7 +311,7 @@ class add_mesh_bolt(Operator, AddObjectHelper):
|
|||
col.prop(self, 'bf_Crest_Percent')
|
||||
col.prop(self, 'bf_Root_Percent')
|
||||
col.prop(self, 'bf_Div_Count')
|
||||
|
||||
|
||||
# generic transform props
|
||||
col.separator()
|
||||
col.prop(self, 'view_align')
|
||||
|
|
|
@ -2003,7 +2003,5 @@ def Create_New_Mesh(props, context):
|
|||
if is_not_mesh_valid:
|
||||
print("\n[BoltFactory]\nFunction: create_mesh_object\n"
|
||||
"Mesh is not Valid, correcting\n")
|
||||
|
||||
|
||||
object_data_add(context, mesh, operator=props)
|
||||
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
http://blog.michelanders.nl/search/label/erosion
|
||||
https://github.com/nerk987/ErosionR
|
||||
https://github.com/nerk987/ErosionR
|
||||
|
|
|
@ -4,4 +4,3 @@ try:
|
|||
numexpr_available=True
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
|
|
@ -19,4 +19,4 @@ TILES##|##Floor_tiles_alt6
|
|||
TILES##|##Floor_alt7
|
||||
TILES##|##Floor_alt8
|
||||
TILES##|##Floor_alt9
|
||||
TILES##|##Floor_alt10
|
||||
TILES##|##Floor_alt10
|
||||
|
|
|
@ -45,4 +45,4 @@ METAL##|##Roof_metal
|
|||
METAL##|##Roof_metal2
|
||||
METAL##|##Roof_metal3
|
||||
METAL##|##Roof_metal4
|
||||
METAL##|##Roof_metal5
|
||||
METAL##|##Roof_metal5
|
||||
|
|
|
@ -28,4 +28,4 @@ d.tile_alternate = False
|
|||
d.hip_alt = 0.13
|
||||
d.tile_bevel_segs = 2
|
||||
d.tile_fit_x = False
|
||||
d.valley_enable = True
|
||||
d.valley_enable = True
|
||||
|
|
|
@ -28,4 +28,4 @@ d.tile_alternate = False
|
|||
d.hip_alt = 0.13
|
||||
d.tile_bevel_segs = 2
|
||||
d.tile_fit_x = False
|
||||
d.valley_enable = True
|
||||
d.valley_enable = True
|
||||
|
|
|
@ -28,4 +28,4 @@ d.tile_alternate = True
|
|||
d.hip_alt = 0.12
|
||||
d.tile_bevel_segs = 3
|
||||
d.tile_fit_x = False
|
||||
d.valley_enable = True
|
||||
d.valley_enable = True
|
||||
|
|
|
@ -28,4 +28,4 @@ d.tile_alternate = True
|
|||
d.hip_alt = 0.13
|
||||
d.tile_bevel_segs = 3
|
||||
d.tile_fit_x = False
|
||||
d.valley_enable = True
|
||||
d.valley_enable = True
|
||||
|
|
|
@ -28,4 +28,4 @@ d.tile_alternate = True
|
|||
d.hip_alt = 0.1
|
||||
d.tile_bevel_segs = 3
|
||||
d.tile_fit_x = False
|
||||
d.valley_enable = True
|
||||
d.valley_enable = True
|
||||
|
|
|
@ -28,4 +28,4 @@ d.tile_alternate = True
|
|||
d.hip_alt = 0.12
|
||||
d.tile_bevel_segs = 3
|
||||
d.tile_fit_x = False
|
||||
d.valley_enable = True
|
||||
d.valley_enable = True
|
||||
|
|
|
@ -186,4 +186,3 @@ class SubprocessHelper:
|
|||
self._wm_exit(context)
|
||||
self._process.kill()
|
||||
self.process_post(-1)
|
||||
|
||||
|
|
|
@ -140,4 +140,3 @@ def is_subdir(path, directory):
|
|||
if path.startswith(directory.rstrip(sep) + sep):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
|
|
@ -140,4 +140,3 @@ def is_subdir(path, directory):
|
|||
if path.startswith(directory.rstrip(sep) + sep):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
|
|
@ -180,7 +180,7 @@ def make_texture_list(texturefolder):
|
|||
|
||||
|
||||
'''
|
||||
#Updating objects MESH part ( Mesh, Vertex Groups, Vertex Colors )
|
||||
#Updating objects MESH part ( Mesh, Vertex Groups, Vertex Colors )
|
||||
'''
|
||||
|
||||
def updatemesh(objekti, proxy):
|
||||
|
@ -333,8 +333,8 @@ class SCENE_OT_opencoat(bpy.types.Operator):
|
|||
file.write("\n[3B]")
|
||||
file.close()
|
||||
|
||||
'''
|
||||
If not Windows Os it will only write import.txt. Auto run 3d-coat.exe is disabled.
|
||||
'''
|
||||
If not Windows Os it will only write import.txt. Auto run 3d-coat.exe is disabled.
|
||||
'''
|
||||
|
||||
else:
|
||||
|
|
|
@ -59,7 +59,7 @@ def readtexturefolder(objekti,is_new): #read textures from texture file
|
|||
texcoat[tex_name].append(koko_osoite)
|
||||
|
||||
createnodes(objekti, texcoat)
|
||||
|
||||
|
||||
def checkmaterial(mat_list, objekti): #check how many materials object has
|
||||
mat_list = []
|
||||
|
||||
|
@ -73,7 +73,7 @@ def createnodes(objekti,texcoat): #luo nodes palikat ja linkittaa tekstuurit nii
|
|||
bring_roughness = True
|
||||
bring_normal = True
|
||||
bring_disp = True
|
||||
|
||||
|
||||
act_material = objekti.active_material
|
||||
if(objekti.active_material.use_nodes == False):
|
||||
objekti.active_material.use_nodes = True
|
||||
|
@ -149,11 +149,11 @@ def createnodes(objekti,texcoat): #luo nodes palikat ja linkittaa tekstuurit nii
|
|||
|
||||
bpy.ops.object.editmode_toggle() #HACKKI joka saa tekstuurit nakymaan heti
|
||||
bpy.ops.object.editmode_toggle()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def matlab(mat_list, objekti, scene,is_new):
|
||||
#checkmaterial(mat_list, objekti)
|
||||
readtexturefolder(objekti,is_new)
|
||||
|
||||
|
||||
return('FINISHED')
|
||||
|
|
|
@ -282,5 +282,3 @@ def _exportItem(ctx, o, mw, drawing, settings):
|
|||
e = LampDXFExporter(settings)
|
||||
|
||||
return e.export(ctx, drawing, o, mx, mx_n, color=ecolor, layer=elayer, lineType=eltype)
|
||||
|
||||
|
||||
|
|
|
@ -924,4 +924,3 @@ if __name__=='__main__':
|
|||
if not copy:
|
||||
Draw.PupMenu('Error%t|This script requires a full python install')
|
||||
else: test()
|
||||
|
||||
|
|
|
@ -119,4 +119,3 @@ class MigiusDXFLibDrawing(DxfDrawing):
|
|||
elif type=='Face':
|
||||
for e in ents:
|
||||
drawing.append(DXF.Face(**e))
|
||||
|
||||
|
|
|
@ -34,5 +34,3 @@ class DxfDrawing(object):
|
|||
def convert(self, **kwargs):
|
||||
""" Converts this drawing into DXF representation object """
|
||||
raise NotImplementedError()
|
||||
|
||||
|
||||
|
|
|
@ -299,5 +299,3 @@ class DXFExporter(bpy.types.Operator):
|
|||
WindowManager = context.window_manager
|
||||
WindowManager.fileselect_add(self)
|
||||
return {'RUNNING_MODAL'}
|
||||
|
||||
|
||||
|
|
|
@ -72,4 +72,3 @@ def exportInsert(ob, mx, insert_name, **common):
|
|||
entities.append(dxfINSERT)
|
||||
|
||||
return entities
|
||||
|
||||
|
|
|
@ -18,4 +18,3 @@ def exportLamp(ob, mx, mw, **common):
|
|||
dxfPOINT = DXF.Point(points=[p],**common)
|
||||
entities.append(dxfPOINT)
|
||||
return entities
|
||||
|
||||
|
|
|
@ -85,5 +85,3 @@ def exportText(ob, mx, mw, **common):
|
|||
flag=textFlag,height=textHeight,justifyhor=Alignment,**common)
|
||||
entities.append(dxfTEXT)
|
||||
return entities
|
||||
|
||||
|
||||
|
|
|
@ -21,4 +21,3 @@ class ViewBorderDXFExporter(BasePrimitiveDXFExporter):
|
|||
dxfPOLYFACE = DXF.PolyLine([allpoints, faces], flag70=flag70, flag75=flag70, width=0.0, paperspace=espace, color=LAYERCOLOR_DEF)
|
||||
#dxfPLINE = DXF.PolyLine(points,points[0],[closed,0,0], paperspace=espace, color=LAYERCOLOR_DEF)
|
||||
d.append(dxfPLINE)
|
||||
|
||||
|
|
|
@ -62,4 +62,4 @@ class Drawing(object):
|
|||
def resolve_text_styles(entities, text_styles):
|
||||
for entity in entities:
|
||||
if hasattr(entity, 'resolve_text_style'):
|
||||
entity.resolve_text_style(text_styles)
|
||||
entity.resolve_text_style(text_styles)
|
||||
|
|
|
@ -1261,4 +1261,3 @@ def entity_factory(tags):
|
|||
entity = cls() # call constructor
|
||||
list(entity.setup_attributes(tags)) # setup dxf attributes - chain of generators
|
||||
return entity
|
||||
|
||||
|
|
|
@ -70,4 +70,4 @@ def julian_date(date):
|
|||
|
||||
|
||||
def calendar_date(juliandate):
|
||||
return CalendarDate(juliandate).result
|
||||
return CalendarDate(juliandate).result
|
||||
|
|
|
@ -87,4 +87,3 @@ class LayerTable(Table):
|
|||
layer = Layer(entrytags)
|
||||
layers._table_entries[layer.name] = layer
|
||||
return layers
|
||||
|
||||
|
|
|
@ -35,4 +35,3 @@ class LinetypeTable(Table):
|
|||
style = Linetype(entry_tags)
|
||||
styles._table_entries[style.name] = style
|
||||
return styles
|
||||
|
||||
|
|
|
@ -278,14 +278,14 @@ def split_by_width(entity):
|
|||
en_template.bulge = []
|
||||
en_template.width = []
|
||||
en_template.tangents = []
|
||||
|
||||
# is_closed is an attrib only on polyline
|
||||
|
||||
# is_closed is an attrib only on polyline
|
||||
if en_template.dxftype == 'POLYLINE':
|
||||
en_template.is_closed = False
|
||||
else:
|
||||
# disable closed flag (0x01) when is_closed is a @property
|
||||
en_template.flags ^= 1
|
||||
|
||||
|
||||
i = 0
|
||||
for pair, same_width in itertools.groupby(entity.width, key=lambda w: WidthTuple(w)):
|
||||
en = deepcopy(en_template)
|
||||
|
|
|
@ -143,4 +143,4 @@ def extrusion(entity):
|
|||
if entity.extrusion is None:
|
||||
return False
|
||||
return Vector(entity.extrusion) != Vector((0, 0, 1)) \
|
||||
or (hasattr(entity, "elevation") and entity.elevation != 0)
|
||||
or (hasattr(entity, "elevation") and entity.elevation != 0)
|
||||
|
|
|
@ -81,4 +81,3 @@ def export_pdb(obj_type, filepath_pdb):
|
|||
pdb_file_p.close()
|
||||
|
||||
return True
|
||||
|
||||
|
|
|
@ -1390,4 +1390,3 @@ def import_pdb(Ball_type,
|
|||
# activate the last selected object
|
||||
if obj:
|
||||
bpy.context.scene.objects.active = obj
|
||||
|
||||
|
|
|
@ -136,4 +136,3 @@ if __name__ == "__main__":
|
|||
traceback.print_exc()
|
||||
|
||||
sys.exit(1)
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ v 0.5.61
|
|||
v 0.5.6
|
||||
- Create new libraries.
|
||||
Libraries are read from the matlib folder. If you want to change this behaviour, edit the variable "matlib_path" at line 40. (Untested)
|
||||
|
||||
|
||||
To delete a library delete the blend file within the matlib folder.
|
||||
|
||||
- Apply material to all selected objects.
|
||||
|
@ -66,10 +66,8 @@ v 0.5.6
|
|||
- Options Added:
|
||||
- Force Import. False By default.
|
||||
This option helps to avoid material duplicates when the same material its applied several times.
|
||||
When this option is disabled the script will try to find the selected material within the working scene, instead of importing a new one from the library.
|
||||
When this option is disabled the script will try to find the selected material within the working scene, instead of importing a new one from the library.
|
||||
- Linked.
|
||||
Import the material by making a link to the library.
|
||||
- Hide search.
|
||||
Shows or hides the search box.
|
||||
|
||||
|
||||
|
|
|
@ -111,4 +111,4 @@
|
|||
"Flaky Tangelo"
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -1094,7 +1094,7 @@ def draw_edges(context, myobj, region, rv3d):
|
|||
precision = scene.measureit_debug_precision
|
||||
# --------------------
|
||||
# edge Loop
|
||||
#
|
||||
#
|
||||
# uses lambda for edge midpoint finder (midf) because edit mode
|
||||
# edge vert coordinate is not stored in same places as in obj mode
|
||||
# --------------------
|
||||
|
|
|
@ -538,7 +538,7 @@ def add_item(box, idx, segment):
|
|||
row = box.row(True)
|
||||
row.prop(segment, 'glarrow_a', text="")
|
||||
row.prop(segment, 'glarrow_b', text="")
|
||||
if segment.glarrow_a != '99' or segment.glarrow_b != '99':
|
||||
if segment.glarrow_a != '99' or segment.glarrow_b != '99':
|
||||
row.prop(segment, 'glarrow_s', text="Size")
|
||||
|
||||
if segment.gltype != 2 and segment.gltype != 10:
|
||||
|
|
|
@ -29,9 +29,9 @@ def failure_message(self):
|
|||
|
||||
def failure_message_on_plane(self):
|
||||
msg2 = """\
|
||||
Edge2Face expects the edge to intersect at one point on the plane of the selected face. You're
|
||||
seeing this warning because mathutils.geometry.intersect_line_plane is being called on an edge/face
|
||||
combination that has no clear intersection point ( both points of the edge either touch the same
|
||||
Edge2Face expects the edge to intersect at one point on the plane of the selected face. You're
|
||||
seeing this warning because mathutils.geometry.intersect_line_plane is being called on an edge/face
|
||||
combination that has no clear intersection point ( both points of the edge either touch the same
|
||||
plane as the face or they lie in a plane that is offset along the face's normal )"""
|
||||
lines = msg2.split('\n')
|
||||
for line in lines:
|
||||
|
|
|
@ -210,4 +210,3 @@ def intersect_ray_segment_fac(v0, v1, ray_direction, ray_origin):
|
|||
c = n - t
|
||||
cray = c.cross(ray_direction)
|
||||
return cray.dot(n) / nlen
|
||||
|
||||
|
|
|
@ -1193,4 +1193,3 @@ def runMaster(address, broadcast, clear, force, path, update_stats, test_break,u
|
|||
clearMaster(httpd.path)
|
||||
else:
|
||||
saveMaster(path, httpd)
|
||||
|
||||
|
|
|
@ -558,4 +558,3 @@ def get(handler):
|
|||
output(link("Back to Main Page", "/html"))
|
||||
|
||||
output("</body></html>")
|
||||
|
||||
|
|
|
@ -131,4 +131,3 @@ ITEMS = (
|
|||
(Subversion.name, Subversion.name, Subversion.description),
|
||||
(Git.name, Git.name, Git.description),
|
||||
)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
object_print3d_utils
|
||||
====================
|
||||
|
||||
3d Printing Addon for Blender 2.66
|
||||
3d Printing Addon for Blender 2.66
|
||||
|
|
|
@ -196,23 +196,23 @@ class OscPanelMesh(Panel):
|
|||
colrow = col.row(align=1)
|
||||
colrow.operator("mesh.reconst_osc", icon="UV_SYNC_SELECT")
|
||||
colrow = col.row(align=1)
|
||||
colrow.operator("mesh.vertex_color_mask", icon="GROUP_VCOL")
|
||||
colrow.operator("mesh.vertex_color_mask", icon="GROUP_VCOL")
|
||||
colrow = col.row(align=1)
|
||||
colrow.operator("mesh.overlap_uv_faces", icon="UV_FACESEL")
|
||||
colrow = col.row(align=1)
|
||||
colrow.operator("mesh.uv_island_copy", icon="COPYDOWN")
|
||||
colrow.operator("mesh.uv_island_paste", icon="PASTEDOWN")
|
||||
colrow.operator("mesh.uv_island_paste", icon="PASTEDOWN")
|
||||
colrow = col.row(align=1)
|
||||
colrow.operator("view3d.modal_operator", icon="STICKY_UVS_DISABLE")
|
||||
colrow.operator("view3d.modal_operator", icon="STICKY_UVS_DISABLE")
|
||||
colrow = col.row(align=1)
|
||||
colrow.operator("lattice.mirror_selected", icon="LATTICE_DATA")
|
||||
colrow = col.row(align=1)
|
||||
colrow.label(text="Edit Multimesh")
|
||||
colrow.prop_search(scene, "multimeshedit", bpy.data, "groups", text="")
|
||||
colrow.prop_search(scene, "multimeshedit", bpy.data, "groups", text="")
|
||||
colrow = col.row(align=1)
|
||||
colrow.operator("mesh.create_edit_multimesh", icon="IMPORT", text= "StartEdit")
|
||||
colrow.operator("mesh.apply_edit_multimesh", icon="EXPORT", text="FinishEdit")
|
||||
|
||||
|
||||
|
||||
class OscPanelShapes(Panel):
|
||||
bl_idname = "Oscurart Shapes Tools"
|
||||
|
|
|
@ -125,7 +125,7 @@ class collectImagesOsc(Operator):
|
|||
for image in bpy.data.images:
|
||||
try:
|
||||
image.update()
|
||||
|
||||
|
||||
if image.has_data:
|
||||
if not os.path.exists(os.path.join(imagespath,os.path.basename(image.filepath))):
|
||||
shutil.copy(image.filepath, os.path.join(imagespath,os.path.basename(image.filepath)))
|
||||
|
@ -133,9 +133,9 @@ class collectImagesOsc(Operator):
|
|||
else:
|
||||
print("%s exists." % (image.name))
|
||||
else:
|
||||
print("%s missing path." % (image.name))
|
||||
print("%s missing path." % (image.name))
|
||||
except:
|
||||
print("%s missing path." % (image.name))
|
||||
print("%s missing path." % (image.name))
|
||||
|
||||
bpy.ops.file.make_paths_relative()
|
||||
|
||||
|
|
|
@ -354,32 +354,32 @@ def DefOscOverlapUv(self,offset,rotate):
|
|||
bm.faces.ensure_lookup_table()
|
||||
faces = [face for face in bm.faces if face.select]
|
||||
uv_layer = bm.loops.layers.uv[bpy.context.object.data.uv_layers.active.name]
|
||||
|
||||
|
||||
faceDict = {}
|
||||
faceReverse = []
|
||||
bm.select_mode = {'FACE'}
|
||||
for face in faces:
|
||||
bpy.ops.mesh.select_all(action="DESELECT")
|
||||
bpy.ops.mesh.select_all(action="DESELECT")
|
||||
face.select = True
|
||||
bpy.ops.mesh.select_mirror()
|
||||
faceDict[face.index] = [mirrorface for mirrorface in bm.faces if mirrorface.select][0].index
|
||||
faceReverse.append([mirrorface for mirrorface in bm.faces if mirrorface.select][0])
|
||||
|
||||
|
||||
|
||||
for selFace,mirrorFace in faceDict.items():
|
||||
for loop,mirrorLoop in zip(bm.faces[selFace].loops,bm.faces[mirrorFace].loops):
|
||||
mirrorLoop.copy_from(loop)
|
||||
if offset:
|
||||
for loop,mirrorLoop in zip(bm.faces[selFace].loops,bm.faces[mirrorFace].loops):
|
||||
mirrorLoop[uv_layer].uv += Vector((1,0))
|
||||
|
||||
|
||||
#invierto direcciones
|
||||
|
||||
|
||||
for selFace,mirrorFace in faceDict.items():
|
||||
for loop,mirrorLoop in zip(bm.faces[selFace].loops,bm.faces[mirrorFace].loops):
|
||||
mirrorLoop.copy_from(loop)
|
||||
if offset:
|
||||
for loop,mirrorLoop in zip(bm.faces[selFace].loops,bm.faces[mirrorFace].loops):
|
||||
mirrorLoop[uv_layer].uv += Vector((1,0))
|
||||
|
||||
|
||||
#invierto direcciones
|
||||
bmesh.ops.reverse_uvs(bm, faces=[f for f in faceReverse])
|
||||
bmesh.ops.rotate_uvs(bm, faces=[f for f in faceReverse])
|
||||
bmesh.ops.rotate_uvs(bm, faces=[f for f in faceReverse])
|
||||
if rotate:
|
||||
bmesh.ops.rotate_uvs(bm, faces=[f for f in faceReverse])
|
||||
bmesh.ops.rotate_uvs(bm, faces=[f for f in faceReverse])
|
||||
|
||||
bmesh.update_edit_mesh(me)
|
||||
|
||||
|
@ -566,41 +566,41 @@ def defCopyUvsIsland(self, context):
|
|||
for li in poly.loop_indices:
|
||||
obLoop.append(li)
|
||||
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
|
||||
def defPasteUvsIsland(self, uvOffset, rotateUv,context):
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
selPolys = [poly.index for poly in bpy.context.object.data.polygons if poly.select]
|
||||
|
||||
|
||||
for island in selPolys:
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
bpy.ops.mesh.select_all(action="DESELECT")
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
bpy.ops.mesh.select_all(action="DESELECT")
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
bpy.context.object.data.polygons[island].select = True
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
bpy.ops.mesh.select_linked()
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
TobLoop = []
|
||||
TislandFaces = []
|
||||
for poly in bpy.context.object.data.polygons:
|
||||
if poly.select:
|
||||
TislandFaces.append(poly.index)
|
||||
for li in poly.loop_indices:
|
||||
TobLoop.append(li)
|
||||
TobLoop.append(li)
|
||||
|
||||
for source,target in zip(range(min(obLoop),max(obLoop)+1),range(min(TobLoop),max(TobLoop)+1)):
|
||||
bpy.context.object.data.uv_layers.active.data[target].uv = bpy.context.object.data.uv_layers.active.data[source].uv + Vector((uvOffset,0))
|
||||
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
|
||||
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
|
||||
if rotateUv:
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
for poly in selPolys:
|
||||
bpy.context.object.data.polygons[poly].select = True
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
bm = bmesh.from_edit_mesh(bpy.context.object.data)
|
||||
bmesh.ops.reverse_uvs(bm, faces=[f for f in bm.faces if f.select])
|
||||
bmesh.ops.rotate_uvs(bm, faces=[f for f in bm.faces if f.select])
|
||||
bmesh.ops.rotate_uvs(bm, faces=[f for f in bm.faces if f.select])
|
||||
#bmesh.update_edit_mesh(bpy.context.object.data, tessface=False, destructive=False)
|
||||
|
||||
|
||||
|
@ -620,22 +620,22 @@ class CopyUvIsland(Operator):
|
|||
def execute(self, context):
|
||||
defCopyUvsIsland(self, context)
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
class PasteUvIsland(Operator):
|
||||
"""Paste Uv Island"""
|
||||
bl_idname = "mesh.uv_island_paste"
|
||||
bl_label = "Paste Uv Island"
|
||||
bl_options = {"REGISTER", "UNDO"}
|
||||
|
||||
|
||||
uvOffset = BoolProperty(
|
||||
name="Uv Offset",
|
||||
default=False
|
||||
)
|
||||
)
|
||||
|
||||
rotateUv = BoolProperty(
|
||||
name="Rotate Uv Corner",
|
||||
default=False
|
||||
)
|
||||
)
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
return (context.active_object is not None and
|
||||
|
@ -644,22 +644,22 @@ class PasteUvIsland(Operator):
|
|||
|
||||
def execute(self, context):
|
||||
defPasteUvsIsland(self, self.uvOffset, self.rotateUv, context)
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
|
||||
class createEditMultimesh(Operator):
|
||||
"""Create Edit Multi Mesh"""
|
||||
bl_idname = "mesh.create_edit_multimesh"
|
||||
bl_label = "Create edit multimesh"
|
||||
bl_options = {"REGISTER", "UNDO"}
|
||||
|
||||
|
||||
|
||||
|
||||
# creo el merge para editar
|
||||
def execute(self,context):
|
||||
def execute(self,context):
|
||||
global relvert
|
||||
global me
|
||||
global ob
|
||||
global me
|
||||
global ob
|
||||
temp = [[ob , [vert.co for vert in ob.data.vertices]]for ob in bpy.data.groups[bpy.context.scene.multimeshedit].objects]
|
||||
vi = 0
|
||||
pi = 0
|
||||
|
@ -670,10 +670,10 @@ class createEditMultimesh(Operator):
|
|||
objectMatrix = ob[0].matrix_world.copy()
|
||||
for vert in ob[0].data.vertices:
|
||||
vertlist.append(objectMatrix*vert.co)
|
||||
for poly in ob[0].data.polygons:
|
||||
for poly in ob[0].data.polygons:
|
||||
polylist.append(tuple([vert+vi for vert in poly.vertices[:]]))
|
||||
relvert[ob[0]] = {vert.index:vert.index+vi for vert in ob[0].data.vertices}
|
||||
vi += len(ob[0].data.vertices)
|
||||
vi += len(ob[0].data.vertices)
|
||||
ob[0].hide = 1
|
||||
me = bpy.data.meshes.new("editMesh")
|
||||
ob = bpy.data.objects.new("editMesh", me)
|
||||
|
@ -682,7 +682,7 @@ class createEditMultimesh(Operator):
|
|||
bpy.ops.object.select_all(action="DESELECT")
|
||||
bpy.context.scene.objects.active = ob
|
||||
bpy.ops.object.mode_set(mode='EDIT', toggle=False)
|
||||
return {'FINISHED'}
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
class ApplyEditMultimesh(Operator):
|
||||
|
@ -690,17 +690,17 @@ class ApplyEditMultimesh(Operator):
|
|||
bl_idname = "mesh.apply_edit_multimesh"
|
||||
bl_label = "Apply edit multimesh"
|
||||
bl_options = {"REGISTER", "UNDO"}
|
||||
|
||||
def execute(self,context):
|
||||
|
||||
def execute(self,context):
|
||||
bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
|
||||
for object,rv in relvert.items():
|
||||
objectMatrix = object.matrix_world.inverted().copy()
|
||||
for source, target in rv.items():
|
||||
object.data.vertices[source].co = objectMatrix * me.vertices[target].co
|
||||
object.hide = 0
|
||||
bpy.context.scene.objects.unlink(ob)
|
||||
return {'FINISHED'}
|
||||
|
||||
object.hide = 0
|
||||
bpy.context.scene.objects.unlink(ob)
|
||||
return {'FINISHED'}
|
||||
|
||||
# -------------------------VERTEX COLOR MASK----------------------------------
|
||||
|
||||
|
||||
|
@ -719,10 +719,10 @@ class resymVertexGroups(Operator):
|
|||
obj = bpy.context.active_object
|
||||
mesh= obj.data
|
||||
|
||||
bpy.ops.object.mode_set(mode='EDIT', toggle=False)
|
||||
bpy.ops.mesh.select_all(action="DESELECT")
|
||||
bpy.ops.object.mode_set(mode='EDIT', toggle=False)
|
||||
bpy.ops.mesh.select_all(action="DESELECT")
|
||||
|
||||
bm = bmesh.from_edit_mesh(mesh)
|
||||
bm = bmesh.from_edit_mesh(mesh)
|
||||
bm.faces.ensure_lookup_table()
|
||||
|
||||
islands = []
|
||||
|
@ -730,24 +730,24 @@ class resymVertexGroups(Operator):
|
|||
|
||||
try:
|
||||
color_layer = bm.loops.layers.color["RGBMask"]
|
||||
except:
|
||||
except:
|
||||
color_layer = bm.loops.layers.color.new("RGBMask")
|
||||
|
||||
while faces:
|
||||
faces[0].select_set(True)
|
||||
bpy.ops.mesh.select_linked()
|
||||
faces[0].select_set(True)
|
||||
bpy.ops.mesh.select_linked()
|
||||
islands.append([f for f in faces if f.select])
|
||||
bpy.ops.mesh.hide(unselected=False)
|
||||
faces = [f for f in bm.faces if not f.hide]
|
||||
bpy.ops.mesh.hide(unselected=False)
|
||||
faces = [f for f in bm.faces if not f.hide]
|
||||
|
||||
bpy.ops.mesh.reveal()
|
||||
|
||||
for island in islands:
|
||||
color = (uniform(0,1),uniform(0,1),uniform(0,1),1)
|
||||
color = (uniform(0,1),uniform(0,1),uniform(0,1),1)
|
||||
for face in island:
|
||||
for loop in face.loops:
|
||||
loop[color_layer] = color
|
||||
|
||||
loop[color_layer] = color
|
||||
|
||||
bpy.ops.object.mode_set(mode="VERTEX_PAINT")
|
||||
|
||||
return {'FINISHED'}
|
||||
return {'FINISHED'}
|
||||
|
|
|
@ -529,7 +529,7 @@ def DefObjectToGroups():
|
|||
try:
|
||||
"%s_MSH" % (os.path.basename(bpy.data.filepath).replace(".blend", ""))
|
||||
scgr = bpy.data.groups["%s_MSH" % (os.path.basename(bpy.data.filepath).replace(".blend", ""))]
|
||||
except:
|
||||
except:
|
||||
scgr = bpy.data.groups.new(
|
||||
"%s_MSH" %
|
||||
(os.path.basename(bpy.data.filepath).replace(".blend", "")))
|
||||
|
|
|
@ -70,7 +70,7 @@ def defRenderAll(frametype, scenes):
|
|||
for i in scene.render.layers:
|
||||
i.use = False
|
||||
layer.use = 1
|
||||
|
||||
|
||||
print("SCENE: %s" % scene.name)
|
||||
print("LAYER: %s" % layer.name)
|
||||
print("OVERRIDE: %s" % str(proptolist))
|
||||
|
@ -84,7 +84,7 @@ def defRenderAll(frametype, scenes):
|
|||
"$Camera":scene.camera.name}
|
||||
|
||||
scene.render.filepath = renpath.replace("$Scene",tokens["$Scene"]).replace("$File",tokens["$File"]).replace("$Layer",tokens["$Layer"]).replace("$Camera",tokens["$Camera"])
|
||||
|
||||
|
||||
bpy.context.window.screen.scene = scene
|
||||
bpy.ops.render.render(
|
||||
animation=True,
|
||||
|
@ -218,15 +218,15 @@ def defoscBatchMaker(TYPE, BIN):
|
|||
SHFILE = os.path.join(
|
||||
bpy.data.filepath.rpartition(SYSBAR)[0],
|
||||
FILENAME + EXTSYS)
|
||||
|
||||
renpath = bpy.context.scene.render.filepath
|
||||
|
||||
renpath = bpy.context.scene.render.filepath
|
||||
tokens = {
|
||||
"$Scene":bpy.context.scene.name,
|
||||
"$File":os.path.basename(bpy.data.filepath).split(".")[0],
|
||||
"$Layer":bpy.context.scene.render.layers.active.name,
|
||||
"$Camera":bpy.context.scene.camera.name}
|
||||
|
||||
rfp = bpy.context.scene.render.filepath.replace("$Scene",tokens["$Scene"]).replace("$File",tokens["$File"]).replace("$Layer",tokens["$Layer"]).replace("$Camera",tokens["$Camera"])
|
||||
rfp = bpy.context.scene.render.filepath.replace("$Scene",tokens["$Scene"]).replace("$File",tokens["$File"]).replace("$Layer",tokens["$Layer"]).replace("$Camera",tokens["$Camera"])
|
||||
with open(SHFILE, "w") as FILE:
|
||||
# assign permission in linux
|
||||
if EXTSYS == ".sh":
|
||||
|
@ -509,5 +509,3 @@ class BrokenFramesPanel (Panel):
|
|||
colrow.operator("object.clear_broken_file")
|
||||
colrow = col.row(align=1)
|
||||
colrow.operator("object.delete_broken_file")
|
||||
|
||||
|
||||
|
|
|
@ -7,4 +7,4 @@ lampdata = bpy.context.object.data
|
|||
lampdata.color = (1.0, 1.0, 0.9843137264251709)
|
||||
lampdata.energy = 1.2 #100 000lux
|
||||
#lampdata.distance = 0.001
|
||||
#lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
#lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -14,4 +14,3 @@ lampdata.shadow_ray_samples_x = 2
|
|||
lampdata.color = (1.0, 1.0, 1.0)
|
||||
lampdata.energy = 1.094316#91193 #lux
|
||||
lampdata.distance =695699968
|
||||
|
||||
|
|
|
@ -11,4 +11,4 @@ lampdata.spot_blend = 0.9
|
|||
lampdata.color = (0.99, 0.9882352948188782, 0.998)
|
||||
lampdata.energy = 223.81796 #240000lm/21.446(=lux)*0.004*2.5(distance) *2 for distance is the point of half strength
|
||||
lampdata.distance = 0.001
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -11,4 +11,4 @@ lampdata.spot_blend = 0.9
|
|||
lampdata.color = (0.9490196108818054, 0.9882352948188782, 1.0)
|
||||
lampdata.energy = 20.98293#9000lm/21.446(=lux)*0.004*6.25(distance) *2 for distance is the point of half strength
|
||||
lampdata.distance = 0.025
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#since 1960, no longer manufactured since 2016
|
||||
#8mm projectors
|
||||
#used in many automobiles headlamps ; outdoor lighting systems ; watercraft ; desktop lamps (smaller power).
|
||||
#theatrical and studio (film and television) fixtures, including Ellipsoidal reflector spotlights, Source Four, and Fresnels; PAR Cans
|
||||
#theatrical and studio (film and television) fixtures, including Ellipsoidal reflector spotlights, Source Four, and Fresnels; PAR Cans
|
||||
|
||||
import bpy
|
||||
bpy.context.object.data.type = 'SPOT'
|
||||
|
|
|
@ -7,4 +7,4 @@ lampdata = bpy.context.object.data
|
|||
lampdata.color = (1.0, 0.8392156958580017, 0.6666666865348816)
|
||||
lampdata.energy = 7.46060#3.7303#1000/21.446/(lampdistance/candledistance) #lumen values/21.446 or lux when available used as a basis
|
||||
lampdata.distance = 0.05
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -7,4 +7,4 @@ lampdata = bpy.context.object.data
|
|||
lampdata.color = (1.0, 0.8196078431372549, 0.6980392156862745)
|
||||
lampdata.energy = 2.98424#400/21.446 #lumen values/21.446 or lux when available used as a basis
|
||||
lampdata.distance = 0.05
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -11,4 +11,4 @@ lampdata.shadow_ray_samples_y = 2
|
|||
lampdata.color = (1.0, 0.95686274766922, 0.9490200281143188)
|
||||
lampdata.energy = 4.45304#4775lm/21.446(=lux)*0.004(distance) *2 for distance is the point of half strength 6200lm?
|
||||
lampdata.distance = 1.0 #dist values multiplied by 10 for area lights for same power as bulb/spot/...
|
||||
#lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
#lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -11,4 +11,4 @@ lampdata.shadow_ray_samples_y = 2
|
|||
lampdata.color = (0.901, 1.0, 0.979)
|
||||
lampdata.energy = 2.14492#2300lm/21.446(=lux)*0.004*2.5(distance) *2 for distance is the point of half strength
|
||||
lampdata.distance = 1.0 #dist values multiplied by 10 for area lights for same power as bulb/spot/...
|
||||
#lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
#lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#since 1973
|
||||
#since 1973
|
||||
|
||||
import bpy
|
||||
bpy.context.object.data.type = 'AREA'
|
||||
|
|
|
@ -12,4 +12,4 @@ lampdata.shadow_ray_samples_y = 2
|
|||
lampdata.color = (0.8313725590705872, 0.9215686321258545, 1.0)
|
||||
lampdata.energy = 1.25898#1350lm/21.446(=lux)*0.004*2.5(distance) *2 for distance is the point of half strength
|
||||
lampdata.distance = 1.0 #dist values multiplied by 10 for area lights for same power as bulb/spot/...
|
||||
#lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
#lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#since the 1990's,
|
||||
#since the 1990's,
|
||||
#Often circular or rectangular closed loop electrodeless fluorescent lamps
|
||||
|
||||
import bpy
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#Starting from 1876 (first type of commercial lamps developed with electricity)
|
||||
#Carbon arc lamps were being phased out after the 1910s.
|
||||
#For general lighting the lamp was replaced by the 1920s and 30s in most cities.
|
||||
#Carbon arc lamps were being phased out after the 1910s.
|
||||
#For general lighting the lamp was replaced by the 1920s and 30s in most cities.
|
||||
#The lamp continued to be used for spot lights, film production lighting and film projector lamps.
|
||||
#Most of the remaining carbon arc lamps ceased production by the 1980s
|
||||
#Most of the remaining carbon arc lamps ceased production by the 1980s
|
||||
|
||||
import bpy
|
||||
bpy.context.object.data.type = 'SPOT'
|
||||
|
@ -15,4 +15,4 @@ lampdata.spot_blend = 0.3
|
|||
lampdata.color = (1.0, 0.9803921580314636, 0.95686274766922)
|
||||
lampdata.energy = 51.29162#55000lm/21.446(=lux)*0.004*2.5(distance) *2 for distance is the point of half strength
|
||||
lampdata.distance = 0.01
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
lampdata.falloff_type = 'INVERSE_SQUARE'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#Starting from 1939 (World War II Byler's tubes)
|
||||
#Starting from 1939 (World War II Byler's tubes)
|
||||
|
||||
import bpy
|
||||
bpy.context.object.data.type = 'AREA'
|
||||
|
@ -9,4 +9,3 @@ lampdata.size_y = 1.2192
|
|||
lampdata.color = (0.6549019813537598, 0.0, 1.0)
|
||||
lampdata.energy = 1.86515#100/21.446 #lumen values/21.446 or lux when available used as a basis
|
||||
lampdata.distance = 0.4 #dist values multiplied by 10 for area lights for same power as bulb/spot/...
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#Starting from 1918 (World War I Wood's glass)
|
||||
#Starting from 1918 (World War I Wood's glass)
|
||||
|
||||
import bpy
|
||||
bpy.context.object.data.type = 'POINT'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#Starting from 1825 (stearin)
|
||||
#Starting from 1825 (stearin)
|
||||
|
||||
import bpy
|
||||
bpy.context.object.data.type = 'POINT'
|
||||
|
|
|
@ -2,14 +2,14 @@ import bpy
|
|||
scene = bpy.context.scene
|
||||
|
||||
scene.world.use_sky_blend = True
|
||||
#below multiplied by two for a better proportion Clear vs Overcast sky
|
||||
#below multiplied by two for a better proportion Clear vs Overcast sky
|
||||
#since Clear sky is 19807 lux vs 2000 for overcast (sun is min 32000 max 100000)
|
||||
#http://www.pssurvival.com/PS/Lighting/Typical_LUX_Intensities_for_Day_and_Night-2017.pdf
|
||||
#https://en.wikipedia.org/wiki/Daylight
|
||||
#https://www.engineeringtoolbox.com/light-level-rooms-d_708.html
|
||||
#https://www.cactus2000.de/fr/unit/masslux.shtml
|
||||
#https://blendergrid.com/news/cycles-physically-correct-brightness
|
||||
#researched result blue is
|
||||
#researched result blue is
|
||||
#Hue: 0.6
|
||||
#Saturation: 0.533
|
||||
#Lightness: 0.7
|
||||
|
|
|
@ -2,14 +2,14 @@ import bpy
|
|||
scene = bpy.context.scene
|
||||
|
||||
scene.world.use_sky_blend = True
|
||||
#below multiplied by two for a better proportion Clear vs Overcast sky
|
||||
#below multiplied by two for a better proportion Clear vs Overcast sky
|
||||
#since Clear sky is 19807 lux vs 2000 for overcast (sun is min 32000 max 100000)
|
||||
#http://www.pssurvival.com/PS/Lighting/Typical_LUX_Intensities_for_Day_and_Night-2017.pdf
|
||||
#https://en.wikipedia.org/wiki/Daylight
|
||||
#https://www.engineeringtoolbox.com/light-level-rooms-d_708.html
|
||||
#https://www.cactus2000.de/fr/unit/masslux.shtml
|
||||
#https://blendergrid.com/news/cycles-physically-correct-brightness
|
||||
#researched result blue is
|
||||
#researched result blue is
|
||||
#Hue: 0.6
|
||||
#Saturation: 0.533
|
||||
#Lightness: 0.7
|
||||
|
|
|
@ -3,7 +3,7 @@ scene = bpy.context.scene
|
|||
|
||||
scene.world.use_sky_blend = True
|
||||
scene.world.horizon_color = (0.477, 0.536, 0.604)
|
||||
#below divided by ten for a better proportion Clear vs Overcast sky
|
||||
#below divided by ten for a better proportion Clear vs Overcast sky
|
||||
#since Clear sky is 20000 lux vs 2000 up to 10000 for overcast
|
||||
scene.world.zenith_color = (0.034, 0.043, 0.047)
|
||||
scene.world.ambient_color = (0.0, 0.0, 0.0)
|
||||
|
|
|
@ -195,4 +195,3 @@ classes = (
|
|||
RenderCopySettingsOPPreset,
|
||||
RenderCopySettingsOPCopy,
|
||||
)
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ else:
|
|||
#import addon_utils # To use some other addons
|
||||
import nodeitems_utils #for Nodes
|
||||
from nodeitems_utils import NodeCategory, NodeItem #for Nodes
|
||||
from bl_operators.presets import AddPresetBase
|
||||
from bl_operators.presets import AddPresetBase
|
||||
from bpy.types import (
|
||||
AddonPreferences,
|
||||
PropertyGroup,
|
||||
|
@ -137,13 +137,13 @@ class RenderPovSettingsScene(PropertyGroup):
|
|||
name="Enable Media",
|
||||
description="Enable POV-Rays atmospheric media",
|
||||
default=False)
|
||||
|
||||
|
||||
media_samples = IntProperty(
|
||||
name="Samples",
|
||||
description="Number of samples taken from camera to first object "
|
||||
"encountered along ray path for media calculation",
|
||||
min=1, max=100, default=35)
|
||||
|
||||
|
||||
media_scattering_type = EnumProperty(
|
||||
name="Scattering Type",
|
||||
description="Scattering model",
|
||||
|
@ -181,14 +181,14 @@ class RenderPovSettingsScene(PropertyGroup):
|
|||
"values of e (or smaller values "
|
||||
"in the negative case) increase "
|
||||
"the directional property of the"
|
||||
" scattering.")),
|
||||
" scattering.")),
|
||||
default='1')
|
||||
|
||||
|
||||
media_diffusion_scale = FloatProperty(
|
||||
name="Scale", description="Scale factor of Media Diffusion Color",
|
||||
precision=12, step=0.00000001, min=0.000000001, max=1.0,
|
||||
default=(1.0))
|
||||
|
||||
|
||||
media_diffusion_color = FloatVectorProperty(
|
||||
name="Media Diffusion Color", description="The atmospheric media color",
|
||||
precision=4, step=0.01, min=0, soft_max=1,
|
||||
|
@ -201,13 +201,13 @@ class RenderPovSettingsScene(PropertyGroup):
|
|||
"use 1/depth of media volume in meters",
|
||||
precision=12, step=0.000001, min=0.000000001, max=1.0,
|
||||
default=(0.00002))
|
||||
|
||||
|
||||
media_absorption_color = FloatVectorProperty(
|
||||
name="Media Absorption Color", description="The atmospheric media absorption color",
|
||||
precision=4, step=0.01, min=0, soft_max=1,
|
||||
default=(0.0, 0.0, 0.0),
|
||||
options={'ANIMATABLE'},
|
||||
subtype='COLOR')
|
||||
subtype='COLOR')
|
||||
|
||||
media_eccentricity = FloatProperty(
|
||||
name="Media Eccenticity Factor", description="Positive values lead"
|
||||
|
@ -218,7 +218,7 @@ class RenderPovSettingsScene(PropertyGroup):
|
|||
precision=2, step=0.01, min=-1.0, max=1.0,
|
||||
default=(0.0),
|
||||
options={'ANIMATABLE'})
|
||||
|
||||
|
||||
baking_enable = BoolProperty(
|
||||
name="Enable Baking",
|
||||
description="Enable POV-Rays texture baking",
|
||||
|
@ -1699,7 +1699,7 @@ class RenderPovSettingsObject(PropertyGroup):
|
|||
default=(0.001, 0.001, 0.5),
|
||||
options={'ANIMATABLE'},
|
||||
subtype='XYZ')
|
||||
|
||||
|
||||
# Importance sampling
|
||||
importance_value = FloatProperty(
|
||||
name="Radiosity Importance",
|
||||
|
@ -1746,7 +1746,7 @@ class RenderPovSettingsObject(PropertyGroup):
|
|||
default=(0.0, 0.0, 2.0))
|
||||
|
||||
unlock_parameters = BoolProperty(name="Lock",default = False)
|
||||
|
||||
|
||||
# not in UI yet but used for sor (lathe) / prism... pov primitives
|
||||
curveshape = EnumProperty(
|
||||
name="Povray Shape Type",
|
||||
|
@ -2138,7 +2138,7 @@ class RenderPovSettingsObject(PropertyGroup):
|
|||
description = "",
|
||||
default = 1.0)
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Modifiers POV properties.
|
||||
###############################################################################
|
||||
|
@ -2150,7 +2150,7 @@ class RenderPovSettingsObject(PropertyGroup):
|
|||
("CARVE", "Use the Carve Boolean Solver", ""),
|
||||
("POV", "Use Pov-Ray Constructive Solid Geometry", "")),
|
||||
default="BMESH")
|
||||
|
||||
|
||||
#################Avogadro
|
||||
# filename_ext = ".png"
|
||||
|
||||
|
@ -2279,7 +2279,7 @@ def register():
|
|||
bpy.types.TEXT_MT_templates.append(ui.menu_func_templates)
|
||||
bpy.types.RENDER_PT_povray_radiosity.prepend(ui.rad_panel_func)
|
||||
bpy.types.LIGHT_PT_POV_light.prepend(ui.light_panel_func)
|
||||
bpy.types.WORLD_PT_world.prepend(ui.world_panel_func)
|
||||
bpy.types.WORLD_PT_world.prepend(ui.world_panel_func)
|
||||
# was used for parametric objects but made the other addon unreachable on
|
||||
# unregister for other tools to use created a user action call instead
|
||||
#addon_utils.enable("add_mesh_extra_objects", default_set=False, persistent=True)
|
||||
|
@ -2301,7 +2301,7 @@ def register():
|
|||
def unregister():
|
||||
del bpy.types.Scene.pov
|
||||
del bpy.types.Material.pov
|
||||
#del bpy.types.Modifier.pov
|
||||
#del bpy.types.Modifier.pov
|
||||
del bpy.types.Texture.pov
|
||||
del bpy.types.Object.pov
|
||||
del bpy.types.Camera.pov
|
||||
|
@ -2312,7 +2312,7 @@ def unregister():
|
|||
#bpy.types.TEXTURE_PT_context_texture.remove(TEXTURE_PT_povray_type)
|
||||
#addon_utils.disable("add_mesh_extra_objects", default_set=False)
|
||||
bpy.types.WORLD_PT_world.remove(ui.world_panel_func)
|
||||
bpy.types.LIGHT_PT_POV_light.remove(ui.light_panel_func)
|
||||
bpy.types.LIGHT_PT_POV_light.remove(ui.light_panel_func)
|
||||
bpy.types.RENDER_PT_povray_radiosity.remove(ui.rad_panel_func)
|
||||
bpy.types.TEXT_MT_templates.remove(ui.menu_func_templates)
|
||||
bpy.types.TOPBAR_MT_file_import.remove(ui.menu_func_import)
|
||||
|
|
|
@ -386,4 +386,3 @@ class df3:
|
|||
# + Add element access, scalar, and vector functions
|
||||
# 07/13/05: 0.10 released
|
||||
###############################################################################
|
||||
|
||||
|
|
|
@ -1305,4 +1305,3 @@ class UpdatePreviewKey(bpy.types.Operator):
|
|||
map = conf.keymaps[mapstr]
|
||||
map.keymap_items.new("node.updatepreview",type='RIGHTMOUSE',value="PRESS")
|
||||
return {'FINISHED'}
|
||||
|
||||
|
|
|
@ -1915,4 +1915,3 @@ class ImportPOV(bpy.types.Operator, ImportHelper):
|
|||
# track.up_axis = "UP_Y"
|
||||
# obj.location = (0,0,0)
|
||||
return {'FINISHED'}
|
||||
|
||||
|
|
|
@ -664,11 +664,11 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
tabWrite("fade_distance %.6f\n" % (sqrt(lamp.distance/2.0)))
|
||||
tabWrite("fade_power %d\n" % 2) # Use blenders lamp quad equivalent
|
||||
elif lamp.falloff_type == 'INVERSE_LINEAR':
|
||||
tabWrite("fade_distance %.6f\n" % (lamp.distance / 2.0))
|
||||
tabWrite("fade_distance %.6f\n" % (lamp.distance / 2.0))
|
||||
tabWrite("fade_power %d\n" % 1) # Use blenders lamp linear
|
||||
elif lamp.falloff_type == 'CONSTANT':
|
||||
tabWrite("fade_distance %.6f\n" % (lamp.distance / 2.0))
|
||||
tabWrite("fade_power %d\n" % 3)
|
||||
tabWrite("fade_power %d\n" % 3)
|
||||
# Use blenders lamp constant equivalent no attenuation.
|
||||
# Using Custom curve for fade power 3 for now.
|
||||
elif lamp.falloff_type == 'CUSTOM_CURVE':
|
||||
|
@ -1452,10 +1452,10 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
file.write('#end\n\n')
|
||||
# Empty curves
|
||||
if len(ob.data.splines)==0:
|
||||
tabWrite("\n//dummy sphere to represent empty curve location\n")
|
||||
tabWrite("\n//dummy sphere to represent empty curve location\n")
|
||||
tabWrite("#declare %s =\n"%dataname)
|
||||
tabWrite("sphere {<%.6g, %.6g, %.6g>,0 pigment{rgbt 1} no_image no_reflection no_radiosity photons{pass_through collect off} hollow}\n\n" % (ob.location.x, ob.location.y, ob.location.z)) # ob.name > povdataname)
|
||||
# And non empty curves
|
||||
tabWrite("sphere {<%.6g, %.6g, %.6g>,0 pigment{rgbt 1} no_image no_reflection no_radiosity photons{pass_through collect off} hollow}\n\n" % (ob.location.x, ob.location.y, ob.location.z)) # ob.name > povdataname)
|
||||
# And non empty curves
|
||||
else:
|
||||
if bezier_sweep == False:
|
||||
tabWrite("#declare %s =\n"%dataname)
|
||||
|
@ -1634,15 +1634,15 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
meta_elems[prefix].extend(elems)
|
||||
else:
|
||||
meta_elems[prefix] = elems
|
||||
|
||||
|
||||
# empty metaball
|
||||
if len(elems)==0:
|
||||
tabWrite("\n//dummy sphere to represent empty meta location\n")
|
||||
tabWrite("sphere {<%.6g, %.6g, %.6g>,0 pigment{rgbt 1} no_image no_reflection no_radiosity photons{pass_through collect off} hollow}\n\n" % (ob.location.x, ob.location.y, ob.location.z)) # ob.name > povdataname)
|
||||
# other metaballs
|
||||
else:
|
||||
tabWrite("sphere {<%.6g, %.6g, %.6g>,0 pigment{rgbt 1} no_image no_reflection no_radiosity photons{pass_through collect off} hollow}\n\n" % (ob.location.x, ob.location.y, ob.location.z)) # ob.name > povdataname)
|
||||
# other metaballs
|
||||
else:
|
||||
for mg, ob in meta_group.items():
|
||||
if len(meta_elems[mg])!=0:
|
||||
if len(meta_elems[mg])!=0:
|
||||
tabWrite("blob{threshold %.4g // %s \n" % (ob.data.threshold, mg))
|
||||
for elems in meta_elems[mg]:
|
||||
elem = elems[0]
|
||||
|
@ -1654,20 +1654,20 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
tabWrite("sphere { <%.6g, %.6g, %.6g>, %.4g, %.4g " %
|
||||
(loc.x, loc.y, loc.z, elem.radius, stiffness))
|
||||
writeMatrix(global_matrix * elems[1].matrix_world)
|
||||
tabWrite("}\n")
|
||||
tabWrite("}\n")
|
||||
elif elem.type == 'ELLIPSOID':
|
||||
tabWrite("sphere{ <%.6g, %.6g, %.6g>,%.4g,%.4g " %
|
||||
(loc.x / elem.size_x, loc.y / elem.size_y, loc.z / elem.size_z,
|
||||
elem.radius, stiffness))
|
||||
tabWrite("scale <%.6g, %.6g, %.6g>" % (elem.size_x, elem.size_y, elem.size_z))
|
||||
writeMatrix(global_matrix * elems[1].matrix_world)
|
||||
tabWrite("}\n")
|
||||
tabWrite("}\n")
|
||||
elif elem.type == 'CAPSULE':
|
||||
tabWrite("cylinder{ <%.6g, %.6g, %.6g>,<%.6g, %.6g, %.6g>,%.4g,%.4g " %
|
||||
((loc.x - elem.size_x), (loc.y), (loc.z),
|
||||
(loc.x + elem.size_x), (loc.y), (loc.z),
|
||||
elem.radius, stiffness))
|
||||
#tabWrite("scale <%.6g, %.6g, %.6g>" % (elem.size_x, elem.size_y, elem.size_z))
|
||||
#tabWrite("scale <%.6g, %.6g, %.6g>" % (elem.size_x, elem.size_y, elem.size_z))
|
||||
writeMatrix(global_matrix * elems[1].matrix_world)
|
||||
tabWrite("}\n")
|
||||
|
||||
|
@ -1677,18 +1677,18 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
tabWrite("}\n")
|
||||
tabWrite("cylinder { -y*8, +y*8,%.4g,%.4g translate<%.6g,%.6g,%.6g> scale <1,1/4,1> scale <%.6g, %.6g, %.6g>\n" % (elem.radius*2.0, stiffness/4.0, loc.x, loc.y, loc.z, elem.size_x, elem.size_y, elem.size_z))
|
||||
writeMatrix(global_matrix * elems[1].matrix_world)
|
||||
tabWrite("}\n")
|
||||
tabWrite("}\n")
|
||||
tabWrite("cylinder { -z*8, +z*8,%.4g,%.4g translate<%.6g,%.6g,%.6g> scale <1,1,1/4> scale <%.6g, %.6g, %.6g>\n" % (elem.radius*2.0, stiffness/4.0, loc.x, loc.y, loc.z, elem.size_x, elem.size_y, elem.size_z))
|
||||
writeMatrix(global_matrix * elems[1].matrix_world)
|
||||
tabWrite("}\n")
|
||||
|
||||
|
||||
elif elem.type == 'PLANE':
|
||||
tabWrite("cylinder { -x*8, +x*8,%.4g,%.4g translate<%.6g,%.6g,%.6g> scale <1/4,1,1> scale <%.6g, %.6g, %.6g>\n" % (elem.radius*2.0, stiffness/4.0, loc.x, loc.y, loc.z, elem.size_x, elem.size_y, elem.size_z))
|
||||
writeMatrix(global_matrix * elems[1].matrix_world)
|
||||
tabWrite("}\n")
|
||||
tabWrite("cylinder { -y*8, +y*8,%.4g,%.4g translate<%.6g,%.6g,%.6g> scale <1,1/4,1> scale <%.6g, %.6g, %.6g>\n" % (elem.radius*2.0, stiffness/4.0, loc.x, loc.y, loc.z, elem.size_x, elem.size_y, elem.size_z))
|
||||
writeMatrix(global_matrix * elems[1].matrix_world)
|
||||
tabWrite("}\n")
|
||||
tabWrite("}\n")
|
||||
|
||||
try:
|
||||
material = elems[1].data.materials[0] # lame! - blender cant do enything else.
|
||||
|
@ -1709,12 +1709,12 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
tabWrite("finish{%s} " % safety(material_finish, Level=2))
|
||||
else:
|
||||
tabWrite("pigment{srgb 1} finish{%s} " % (safety(DEF_MAT_NAME, Level=2)))
|
||||
|
||||
|
||||
|
||||
writeObjectMaterial(material, ob)
|
||||
#writeObjectMaterial(material, elems[1])
|
||||
tabWrite("radiosity{importance %3g}\n" % ob.pov.importance_value)
|
||||
tabWrite("}\n\n") # End of Metaball block
|
||||
tabWrite("}\n\n") # End of Metaball block
|
||||
|
||||
|
||||
'''
|
||||
|
@ -2697,7 +2697,7 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
|
||||
if not me or not me_faces:
|
||||
tabWrite("\n//dummy sphere to represent empty mesh location\n")
|
||||
tabWrite("#declare %s =sphere {<0, 0, 0>,0 pigment{rgbt 1} no_image no_reflection no_radiosity photons{pass_through collect off} hollow}\n" % povdataname)
|
||||
tabWrite("#declare %s =sphere {<0, 0, 0>,0 pigment{rgbt 1} no_image no_reflection no_radiosity photons{pass_through collect off} hollow}\n" % povdataname)
|
||||
continue
|
||||
|
||||
uv_textures = me.tessface_uv_textures
|
||||
|
@ -2989,7 +2989,7 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
|
||||
file.write("\n")
|
||||
tabWrite("}\n")
|
||||
|
||||
|
||||
#XXX BOOLEAN
|
||||
onceCSG = 0
|
||||
for mod in ob.modifiers:
|
||||
|
@ -3002,7 +3002,7 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
ob.pov.inside_vector[1],
|
||||
ob.pov.inside_vector[2]))
|
||||
onceCSG = 1
|
||||
|
||||
|
||||
if me.materials:
|
||||
try:
|
||||
material = me.materials[0] # dodgy
|
||||
|
@ -3010,9 +3010,9 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
except IndexError:
|
||||
print(me)
|
||||
|
||||
# POV object modifiers such as
|
||||
# POV object modifiers such as
|
||||
# hollow / sturm / double_illuminate etc.
|
||||
write_object_modifiers(scene,ob,file)
|
||||
write_object_modifiers(scene,ob,file)
|
||||
|
||||
#Importance for radiosity sampling added here:
|
||||
tabWrite("radiosity { \n")
|
||||
|
@ -3245,7 +3245,7 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
|
||||
file.write("\n")
|
||||
tabWrite("}\n")
|
||||
|
||||
|
||||
#XXX BOOLEAN
|
||||
onceCSG = 0
|
||||
for mod in ob.modifiers:
|
||||
|
@ -3266,10 +3266,10 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
except IndexError:
|
||||
print(me)
|
||||
|
||||
# POV object modifiers such as
|
||||
# POV object modifiers such as
|
||||
# hollow / sturm / double_illuminate etc.
|
||||
write_object_modifiers(scene,ob,file)
|
||||
|
||||
write_object_modifiers(scene,ob,file)
|
||||
|
||||
#Importance for radiosity sampling added here:
|
||||
tabWrite("radiosity { \n")
|
||||
tabWrite("importance %3g \n" % importance)
|
||||
|
@ -3484,7 +3484,7 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
elif mist.falloff=='QUADRATIC': # n**2 or squrt(n)?
|
||||
tabWrite("distance %.6f\n" % ((mist.start+mist.depth)**2*0.368))
|
||||
elif mist.falloff=='INVERSE_QUADRATIC': # n**2 or squrt(n)?
|
||||
tabWrite("distance %.6f\n" % ((mist.start+mist.depth)**2*0.368))
|
||||
tabWrite("distance %.6f\n" % ((mist.start+mist.depth)**2*0.368))
|
||||
tabWrite("color rgbt<%.3g, %.3g, %.3g, %.3g>\n" % \
|
||||
(*world.horizon_color, 1.0 - mist.intensity))
|
||||
#tabWrite("fog_offset %.6f\n" % mist.start) #create a pov property to prepend
|
||||
|
@ -3497,15 +3497,15 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
tabWrite("media {\n")
|
||||
tabWrite("scattering { %d, rgb %.12f*<%.4g, %.4g, %.4g>\n" % \
|
||||
(int(scene.pov.media_scattering_type),
|
||||
(scene.pov.media_diffusion_scale),
|
||||
(scene.pov.media_diffusion_scale),
|
||||
*(scene.pov.media_diffusion_color[:])))
|
||||
if scene.pov.media_scattering_type == '5':
|
||||
tabWrite("eccentricity %.3g\n" % scene.pov.media_eccentricity)
|
||||
tabWrite("}\n")
|
||||
tabWrite("eccentricity %.3g\n" % scene.pov.media_eccentricity)
|
||||
tabWrite("}\n")
|
||||
tabWrite("absorption %.12f*<%.4g, %.4g, %.4g>\n" % \
|
||||
(scene.pov.media_absorption_scale,
|
||||
*(scene.pov.media_absorption_color[:])))
|
||||
tabWrite("\n")
|
||||
*(scene.pov.media_absorption_color[:])))
|
||||
tabWrite("\n")
|
||||
tabWrite("samples %.d\n" % scene.pov.media_samples)
|
||||
tabWrite("}\n")
|
||||
|
||||
|
@ -3591,7 +3591,7 @@ def write_pov(filename, scene=None, info_callback=None):
|
|||
if scene.pov.photon_map_file_save_load in {'load'}:
|
||||
fullFileName = bpy.path.abspath(scene.pov.photon_map_file)
|
||||
if os.path.exists(fullFileName):
|
||||
tabWrite('load_file "%s"\n'%fullFileName)
|
||||
tabWrite('load_file "%s"\n'%fullFileName)
|
||||
tabWrite("}\n")
|
||||
oncePhotons = 0
|
||||
|
||||
|
@ -3975,7 +3975,7 @@ class PovrayRender(bpy.types.RenderEngine):
|
|||
x = int(r.resolution_x * r.resolution_percentage * 0.01)
|
||||
y = int(r.resolution_y * r.resolution_percentage * 0.01)
|
||||
print("***INITIALIZING***")
|
||||
|
||||
|
||||
# This makes some tests on the render, returning True if all goes good, and False if
|
||||
# it was finished one way or the other.
|
||||
# It also pauses the script (time.sleep())
|
||||
|
@ -4000,7 +4000,7 @@ class PovrayRender(bpy.types.RenderEngine):
|
|||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
if scene.pov.text_block !="":
|
||||
if scene.pov.tempfiles_enable:
|
||||
self._temp_file_in = tempfile.NamedTemporaryFile(suffix=".pov", delete=False).name
|
||||
|
@ -4022,28 +4022,28 @@ class PovrayRender(bpy.types.RenderEngine):
|
|||
os.remove(self._temp_file_in) # so as not to load the old file
|
||||
except OSError:
|
||||
pass
|
||||
'''
|
||||
'''
|
||||
print(scene.pov.text_block)
|
||||
text = bpy.data.texts[scene.pov.text_block]
|
||||
file=open("%s"%self._temp_file_in,"w")
|
||||
# Why are the newlines needed?
|
||||
file.write("\n")
|
||||
file.write(text.as_string())
|
||||
file.write("\n")
|
||||
file.write("\n")
|
||||
file.close()
|
||||
|
||||
# has to be called to update the frame on exporting animations
|
||||
scene.frame_set(scene.frame_current)
|
||||
|
||||
|
||||
pov_binary = PovrayRender._locate_binary()
|
||||
|
||||
if not pov_binary:
|
||||
print("POV-Ray 3.7: could not execute povray, possibly POV-Ray isn't installed")
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
# start ini UI options export
|
||||
self.update_stats("", "POV-Ray 3.7: Exporting ini options from Blender")
|
||||
self.update_stats("", "POV-Ray 3.7: Exporting ini options from Blender")
|
||||
|
||||
write_pov_ini(scene, self._temp_file_ini, self._temp_file_log, self._temp_file_in, self._temp_file_out)
|
||||
|
||||
|
@ -4085,21 +4085,21 @@ class PovrayRender(bpy.types.RenderEngine):
|
|||
print("Engine ready!...")
|
||||
print("Command line arguments passed: " + str(extra_args))
|
||||
#return True
|
||||
self.update_stats("", "POV-Ray 3.7: Parsing File")
|
||||
self.update_stats("", "POV-Ray 3.7: Parsing File")
|
||||
|
||||
|
||||
|
||||
# Indented in main function now so repeated here but still not working
|
||||
|
||||
# Indented in main function now so repeated here but still not working
|
||||
# to bring back render result to its buffer
|
||||
|
||||
|
||||
if os.path.exists(self._temp_file_out):
|
||||
xmin = int(r.border_min_x * x)
|
||||
ymin = int(r.border_min_y * y)
|
||||
xmax = int(r.border_max_x * x)
|
||||
ymax = int(r.border_max_y * y)
|
||||
result = self.begin_result(0, 0, x, y)
|
||||
result = self.begin_result(0, 0, x, y)
|
||||
lay = result.layers[0]
|
||||
|
||||
|
||||
time.sleep(self.DELAY)
|
||||
try:
|
||||
lay.load_from_file(self._temp_file_out)
|
||||
|
@ -4108,12 +4108,12 @@ class PovrayRender(bpy.types.RenderEngine):
|
|||
self.end_result(result)
|
||||
#print(self._temp_file_log) #bring the pov log to blender console with proper path?
|
||||
with open(self._temp_file_log) as f: # The with keyword automatically closes the file when you are done
|
||||
print(f.read())
|
||||
|
||||
print(f.read())
|
||||
|
||||
self.update_stats("", "")
|
||||
|
||||
if scene.pov.tempfiles_enable or scene.pov.deletefiles_enable:
|
||||
self._cleanup()
|
||||
self._cleanup()
|
||||
else:
|
||||
|
||||
##WIP output format
|
||||
|
@ -4458,12 +4458,12 @@ class RunPovTextRender(Operator):
|
|||
bl_label = "Run"
|
||||
bl_context = "text"
|
||||
bl_description = "Run a render with this text only"
|
||||
|
||||
|
||||
def execute(self, context):
|
||||
scene = context.scene
|
||||
scene.pov.text_block = context.space_data.text.name
|
||||
|
||||
|
||||
|
||||
bpy.ops.render.render()
|
||||
|
||||
#empty text name property engain
|
||||
|
|
|
@ -57,27 +57,27 @@ class AddPresetWorld(AddPresetBase, bpy.types.Operator):
|
|||
|
||||
# variable used for all preset values
|
||||
preset_defines = [
|
||||
"scene = bpy.context.scene"
|
||||
"scene = bpy.context.scene"
|
||||
]
|
||||
|
||||
# properties to store in the preset
|
||||
preset_values = [
|
||||
"scene.world.use_sky_blend",
|
||||
"scene.world.horizon_color",
|
||||
"scene.world.zenith_color",
|
||||
"scene.world.zenith_color",
|
||||
"scene.world.ambient_color",
|
||||
"scene.world.mist_settings.use_mist",
|
||||
"scene.world.mist_settings.intensity",
|
||||
"scene.world.mist_settings.depth",
|
||||
"scene.world.mist_settings.depth",
|
||||
"scene.world.mist_settings.start",
|
||||
"scene.pov.media_enable",
|
||||
"scene.pov.media_scattering_type",
|
||||
"scene.pov.media_scattering_type",
|
||||
"scene.pov.media_samples",
|
||||
"scene.pov.media_diffusion_scale",
|
||||
"scene.pov.media_diffusion_color",
|
||||
"scene.pov.media_absorption_scale",
|
||||
"scene.pov.media_absorption_color",
|
||||
"scene.pov.media_eccentricity",
|
||||
"scene.pov.media_eccentricity",
|
||||
]
|
||||
|
||||
# where to store the preset
|
||||
|
@ -96,7 +96,7 @@ def world_panel_func(self, context):
|
|||
classes = (
|
||||
POV_WORLD_MT_presets,
|
||||
AddPresetWorld,
|
||||
)
|
||||
)
|
||||
|
||||
# Example of wrapping every class 'as is'
|
||||
from bl_ui import properties_texture
|
||||
|
@ -527,7 +527,7 @@ class AddPresetLamp(AddPresetBase, bpy.types.Operator):
|
|||
# properties to store in the preset
|
||||
preset_values = [
|
||||
"lightdata.type",
|
||||
"lightdata.color",
|
||||
"lightdata.color",
|
||||
]
|
||||
|
||||
# where to store the preset
|
||||
|
@ -550,8 +550,8 @@ def light_panel_func(self, context):
|
|||
classes = (
|
||||
POV_LIGHT_MT_presets,
|
||||
AddPresetLamp,
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
class LIGHT_PT_POV_sunsky(PovLampButtonsPanel, bpy.types.Panel):
|
||||
bl_label = properties_data_light.DATA_PT_sunsky.bl_label
|
||||
|
||||
|
@ -708,10 +708,10 @@ class RENDER_PT_povray_render_settings(RenderButtonsPanel, bpy.types.Panel):
|
|||
|
||||
scene = context.scene
|
||||
#layout.active = (scene.pov.max_trace_level != 0)
|
||||
|
||||
|
||||
if sys.platform[:3] != "win":
|
||||
layout.prop(scene.pov, "sdl_window_enable", text="POV-Ray SDL Window")
|
||||
|
||||
|
||||
col = layout.column()
|
||||
|
||||
col.label(text="Global Settings:")
|
||||
|
@ -889,9 +889,9 @@ class RENDER_PT_povray_radiosity(RenderButtonsPanel, bpy.types.Panel):
|
|||
col.prop(scene.pov, "radio_subsurface")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class POV_RADIOSITY_MT_presets(bpy.types.Menu):
|
||||
bl_label = "Radiosity Presets"
|
||||
preset_subdir = "pov/radiosity"
|
||||
|
@ -912,7 +912,7 @@ class AddPresetRadiosity(AddPresetBase, bpy.types.Operator):
|
|||
|
||||
# properties to store in the preset
|
||||
preset_values = [
|
||||
"scene.pov.radio_display_advanced",
|
||||
"scene.pov.radio_display_advanced",
|
||||
"scene.pov.radio_adc_bailout",
|
||||
"scene.pov.radio_always_sample",
|
||||
"scene.pov.radio_brightness",
|
||||
|
@ -928,7 +928,7 @@ class AddPresetRadiosity(AddPresetBase, bpy.types.Operator):
|
|||
"scene.pov.radio_normal",
|
||||
"scene.pov.radio_recursion_limit",
|
||||
"scene.pov.radio_pretrace_start",
|
||||
"scene.pov.radio_pretrace_end",
|
||||
"scene.pov.radio_pretrace_end",
|
||||
]
|
||||
|
||||
# where to store the preset
|
||||
|
@ -952,8 +952,8 @@ classes = (
|
|||
POV_RADIOSITY_MT_presets,
|
||||
AddPresetRadiosity,
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
class RENDER_PT_povray_media(WorldButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Atmosphere Media"
|
||||
COMPAT_ENGINES = {'POVRAY_RENDER'}
|
||||
|
@ -974,14 +974,14 @@ class RENDER_PT_povray_media(WorldButtonsPanel, bpy.types.Panel):
|
|||
col.prop(scene.pov, "media_scattering_type", text="")
|
||||
col = layout.column()
|
||||
col.prop(scene.pov, "media_samples", text="Samples")
|
||||
split = layout.split()
|
||||
split = layout.split()
|
||||
col = split.column(align=True)
|
||||
col.label(text="Scattering:")
|
||||
col.prop(scene.pov, "media_diffusion_scale")
|
||||
col.prop(scene.pov, "media_diffusion_color", text="")
|
||||
col = split.column(align=True)
|
||||
col.label(text="Absorption:")
|
||||
col.prop(scene.pov, "media_absorption_scale")
|
||||
col.prop(scene.pov, "media_absorption_scale")
|
||||
col.prop(scene.pov, "media_absorption_color", text="")
|
||||
if scene.pov.media_scattering_type == '5':
|
||||
col = layout.column()
|
||||
|
@ -1026,12 +1026,12 @@ class MODIFIERS_PT_povray_modifiers(ModifierButtonsPanel, bpy.types.Panel):
|
|||
col.prop(ob.pov, "boolean_mod")
|
||||
onceCSG = 1
|
||||
|
||||
if ob.pov.boolean_mod == "POV":
|
||||
if ob.pov.boolean_mod == "POV":
|
||||
split = layout.split()
|
||||
col = layout.column()
|
||||
# Inside Vector for CSG
|
||||
col.prop(ob.pov, "inside_vector")
|
||||
|
||||
|
||||
|
||||
class MATERIAL_PT_povray_activate_node(MaterialButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Activate Node Settings"
|
||||
|
@ -1514,7 +1514,7 @@ class TEXTURE_PT_povray_tex_gamma(TextureButtonsPanel, bpy.types.Panel):
|
|||
class OBJECT_PT_povray_obj_parameters(ObjectButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "POV-Ray"
|
||||
COMPAT_ENGINES = {'POVRAY_RENDER'}
|
||||
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
|
||||
|
@ -1536,14 +1536,14 @@ class OBJECT_PT_povray_obj_parameters(ObjectButtonsPanel, bpy.types.Panel):
|
|||
col.prop(obj.pov, "collect_photons", text="Receive Photon Caustics")
|
||||
if obj.pov.collect_photons:
|
||||
col.prop(obj.pov, "spacing_multiplier", text="Photons Spacing Multiplier")
|
||||
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.prop(obj.pov,"hollow")
|
||||
col.prop(obj.pov,"double_illuminate")
|
||||
|
||||
|
||||
|
||||
if obj.type == 'META' or obj.pov.curveshape == 'lathe':
|
||||
#if obj.pov.curveshape == 'sor'
|
||||
col.prop(obj.pov,"sturm")
|
||||
|
@ -2114,7 +2114,7 @@ class TEXT_PT_povray_custom_code(TextButtonsPanel, bpy.types.Panel):
|
|||
layout = self.layout
|
||||
|
||||
text = context.space_data.text
|
||||
|
||||
|
||||
pov_documents = locate_docpath()
|
||||
if not pov_documents :
|
||||
layout.label(text="Please configure ", icon="INFO")
|
||||
|
@ -2136,7 +2136,7 @@ class TEXT_PT_povray_custom_code(TextButtonsPanel, bpy.types.Panel):
|
|||
row = box.row()
|
||||
row.prop(text.pov, "custom_code",expand = True)
|
||||
if text.pov.custom_code in {'3dview'}:
|
||||
box.operator("render.render", icon='OUTLINER_DATA_POSE')
|
||||
box.operator("render.render", icon='OUTLINER_DATA_POSE')
|
||||
if text.pov.custom_code in {'text'}:
|
||||
rtext = bpy.context.space_data.text
|
||||
box.operator("text.run", icon='POSE_DATA')
|
||||
|
@ -2145,7 +2145,7 @@ class TEXT_PT_povray_custom_code(TextButtonsPanel, bpy.types.Panel):
|
|||
box.operator("render.render", icon='POSE_HLT')
|
||||
layout.label(text="Please specify declared", icon="INFO")
|
||||
layout.label(text="items in properties ")
|
||||
#layout.label(text="")
|
||||
#layout.label(text="")
|
||||
layout.label(text="replacement fields")
|
||||
|
||||
|
||||
|
|
|
@ -479,4 +479,4 @@ def isPitchipoy(metarig):
|
|||
words = pb.rigify_type.partition('.')
|
||||
if words[0] == 'pitchipoy':
|
||||
return True
|
||||
return False
|
||||
return False
|
||||
|
|
|
@ -2717,4 +2717,4 @@ def create(obj):
|
|||
arm.layers = [(x in [0, 3, 5, 7, 10, 13, 16]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -2397,4 +2397,3 @@ def create_square_widget(rig, bone_name, size=1.0, bone_transform_name=None):
|
|||
return obj
|
||||
else:
|
||||
return None
|
||||
|
||||
|
|
|
@ -407,8 +407,3 @@ def create_sample(obj):
|
|||
bone.select_head = True
|
||||
bone.select_tail = True
|
||||
arm.edit_bones.active = bone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -160,5 +160,3 @@ def create_ballsocket_widget(rig, bone_name, size=1.0, bone_transform_name=None)
|
|||
return obj
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
|
|
|
@ -1493,4 +1493,4 @@ def create(obj):
|
|||
arm.layers = [(x in [0, 3, 7, 10, 13, 16, 21, 24]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -2976,4 +2976,4 @@ def create(obj):
|
|||
arm.layers = [(x in [0, 3, 5, 7, 10, 13, 16, 19]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -1369,4 +1369,4 @@ def create(obj):
|
|||
arm.layers = [(x in [0, 3, 4, 7, 10, 13, 16, 19, 21]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -791,4 +791,4 @@ def create(obj):
|
|||
arm.layers = [(x in [0, 3, 5, 6, 8, 10]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -3224,4 +3224,4 @@ def create(obj):
|
|||
arm.layers = [(x in [0, 3, 4, 5, 7, 10, 13, 16, 19]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -681,4 +681,4 @@ def create(obj):
|
|||
arm.layers = [(x in [3, 7, 10, 13, 16]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -816,4 +816,4 @@ def create(obj):
|
|||
arm.layers = [(x in [3, 4, 7, 10, 13, 16, 19]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -2715,4 +2715,4 @@ def create(obj):
|
|||
arm.layers = [(x in [0, 3, 5, 7, 10, 13, 16]) for x in range(32)]
|
||||
|
||||
if __name__ == "__main__":
|
||||
create(bpy.context.active_object)
|
||||
create(bpy.context.active_object)
|
||||
|
|
|
@ -1425,4 +1425,4 @@ def create_sample(obj):
|
|||
bone.select_tail = True
|
||||
arm.edit_bones.active = bone
|
||||
|
||||
arm.layers = [(x in [0]) for x in range(32)]
|
||||
arm.layers = [(x in [0]) for x in range(32)]
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue