<< 2/2

python¤Ç¥Ñ¡¼¥Æ¥£¥¯¥ë¡¡¤½¤Î4

cgkit¤È3Delight¤Ç¥á¥¿¥Ü¡¼¥ë¤Î¥Ñ¡¼¥Æ¥£¥¯¥ë¤òÀßÄꤷ¤Æ¤ß¤¿¡£
µ÷Î¥¡¢ÌÀ¤ë¤µ¤òÄ´À°¤·¤¿¡£
¹­¤¬¤Ã¤Æ¤­¤ÆÌÌÇò¤¤¤Ç¤¹¡£
point2_blob.jpg


#point2_blob.py - Create a simple Particle System
import random, math
import cgkit.cri
from cgkit.cgtypes import *
from random import uniform as ru


# Load the RenderMan API.
# Replace the library name with whatever renderer you want to use.
ri = cgkit.cri.loadRI("3delight")
cgkit.cri.importRINames(ri, globals())

points=[]
width=[]
colour=[]
normals=[]
pappend=points.append
wappend=width.append
cappend=colour.append
nappend=normals.append

for i in range(0,2000):
for ix in range(0,3):
cappend(ru(0,1))
pappend(ru(-2,2))
nappend(ru(0,1))
wappend(ru(0.04,0.45))


RiBegin(RI_NULL)
RiImager("background", "color background",(.2,.4,.6))
RiDisplay ("point2_blob.tif","framebuffer","rgb",RI_NULL)
RiFormat(512, 384, -1.0)
RiPixelSamples( 4, 4)
RiShadingRate(1)
RiProjection ("perspective","fov",30,RI_NULL)
RiWorldBegin()
RiLightSource("ambientlight","intensity",0.4)
RiLightSource("distantlight", "to",[1,0,1])
RiTranslate(0,0,6)
RiSurface("plastic")
RiPoints("P",points,"Cs",colour,"width",width,"uniform string type","blobby")
RiWorldEnd()
RiEnd()


  • -
  • -

blender/3delight¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡

blender/3delight¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡

¢£Windows Vista ¤Þ¤¿¤ÏWindows 7 64bit¤Î¾ì¹ç

°Ê²¼¤ò½çÈ֤˥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£
­¡3delight¤Î¥¤¥ó¥¹¥È¡¼¥ë
http://www.3delight.com/en/index.php?page=3DSP_download
3delight-10.0.4-setup-x64.exe¤ò¥À¥¦¥ó¥í¡¼¥É
¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£

­¢blender¤Î¥¤¥ó¥¹¥È¡¼¥ë
http://download.blender.org/release/
blender-2.59-release-windows64.exe¤ò¥À¥¦¥ó¥í¡¼¥É
¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£

­£3Delight/Blender¤Î¥¤¥ó¥¹¥È¡¼¥ë
An external render engine exporter for Blender 2.5
http://mattebb.com/3delightblender/
render_3delight_0.7.0.zip¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢²òÅष¤Þ¤¹¡£


­¤ÀßÄê
(1) C:\Program Files\Blender Foundation\Blender\2.59\scripts\addons¤Ë
render_3delight¥Õ¥©¥ë¥À¤ò¥³¥Ô¡¼¤·¤Þ¤¹¡£

(2) blender¤òµ¯Æ°¤·¤Þ¤¹¡£¥á¥Ë¥å¡¼File¤«¤éUser Preferences¤ÎAddons tab¤ò¥¯¥ê¥Ã¥¯¤·¡¢º¸Categories¤«¤éRender¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£

(3) Render:Render:3Delight¤ò¸«¤Ä¤±¡¢±¦Ã¼¤Î¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤Ë¥ìÅÀ¤òÆþ¤ì¤Þ¤¹¡£

(4) ¡ÖSave As Default¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£


­¥PointClouds¤ÎÀßÄê
(1) C:\Program Files\Blender Foundation\Blender\2.59\scripts\addons\render_3delight\shaders¥Õ¥©¥ë¥À¤Ë¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤ò¥³¥Ô¡¼¤·¤Þ¤¹¡£

(2) shaders¥Õ¥©¥ë¥À¤Î¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤ò±¦¥¯¥ê¥Ã¥¯¤·¤Æ¥×¥í¥Ñ¥Æ¥£¤ò³«¤­¡¢¡Öºî¶È¥Õ¥©¥ë¥À¡×¥Ñ¥¹¤ò¾Ã¤·¤Æ¶õÍó¤Ë¤·OK¤ò²¡¤·¤Þ¤¹¡£

(3) shaders¥Õ¥©¥ë¥À¤Î¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯µ¯Æ°¤·¡¢°Ê²¼¤òÆþÎϤ·¥¨¥ó¥¿¡¼¥­¡¼¤òÂǤÁ¤Þ¤¹¡£

>shaderdl *.sl

gi_photon.sdl, gi_pointcloud.sdl, gi_raytrace.sdl, vol_ptcbake.sdl¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤Ç¤­¤¢¤¬¤ê¤Þ¤¹¡£

(4) ³¤¤¤Æ3delight¤Ëshaders¥Õ¥©¥ë¥À¤Î¥Ñ¥¹¤òÄɲä·¤Þ¤¹¡£

¡Ö¥³¥ó¥Ô¥å¡¼¥¿¡×±¦¥¯¥ê¥Ã¥¯¢ª¥×¥í¥Ñ¥Æ¥£¢ª¡Ö¥·¥¹¥Æ¥à¤Î¾ÜºÙÀßÄê¡×¢ª¡Ö´Ä¶­ÊÑ¿ô¡×¤ò³«¤±¤Þ¤¹¡£

(5) ¡Ö¥·¥¹¥Æ¥à´Ä¶­ÊÑ¿ô¡×¤«¤é¡ÖDL_SHADERS_PATH¡×¤ò¥¯¥ê¥Ã¥¯ÁªÂò¤·¡¢¡ÖÊÔ½¸¡×¤ò²¡¤·¤Þ¤¹¡£

(6) .:C:\Program Files\3Delight\shaders
¤Ë¡¢°Ê²¼¤Î¥Ñ¥¹¤òÄɲä·¤Þ¤¹¡£

;C:\Program Files\Blender Foundation\Blender\2.59\scripts\addons\render_3delight\shaders

(7) OK¤ò²¡¤·¡¢OK¤ò²¡¤·¤Þ¤¹¡£

­¦ Blender¤Ç3Delight¤ò»È¤Ã¤Æ¥ì¥ó¥À¥ê¥ó¥°¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¦¥é¥¤¥È¤ÏSun¤òÁªÂò¤·raytrace shadow¤¬Îɤ¤¤Ç¤·¤ç¤¦¡£
¡¦Pointclouds¤ÎÀßÄê¤ò¥ª¥ó¤Ë¤¹¤ë¤È¥ì¥ó¥À¥ê¥ó¥°¤Ï»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¡£

¤Þ¤À¤Þ¤À̤´°À®¤Ê¤È¤³¤í¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤È¤Æ¤âÊØÍø¤ÇÊÙ¶¯¤Ë¤Ê¤ê¤Þ¤¹¡£
°Ê¾å¡¢¼«¸ÊÀÕǤ¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£
ÆâÍƤ˴ؤ·¤ÆÌÀ¼¨¡¢ÈóÌÀ¼¨¤Ë¤«¤«¤ï¤é¤º¡¢¤¤¤«¤Ê¤ëÊݾڤâÃפ·¤Þ¤»¤ó¡£¤Þ¤¿°ìÀÚ¤ÎÀÕǤ¤òÉ餤¤Þ¤»¤ó¡£
  • -
  • -

3Delight nsi viewTransformation

¢£°Ê²¼¤ÏMaya¤ÎPersp¤Î¥Á¥ã¥ó¥Í¥ë¥Ü¥Ã¥¯¥¹¤Î¥Ç¥Õ¥©¥ë¥È°ÌÃÖ¤òÎã¤È¤·¤Æ
Translate X: 28
Translate Y: 21
Translate Z: 28
Rotate X: -27.938
Rotate Y: 45
Rotate Z: 0
Scale X: 1
Scale Y: 1
Scale Z: 1

3Delight nsi¤Ç¤Ï¡¢
SetAttributeAtTime "|persp" -0.20000000000000001
"transformationmatrix" "doublematrix" 1 [ 0.70710678118654791 0 -0.70710678118654713 0 -0.33129457822453973 0.88345220859877216 -0.33129457822454006 0 0.62469504755442384 0.46852128566581852 0.6246950475544244 0 28 21 28 1 ]

¤³¤ì¤òpython cgkit¤Ç·×»»¤·¤Æ¤ß¤Þ¤·¤¿¡£
python cgkit¤Çµá¤á¤Æ¤ß¤Þ¤¹¡£¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥â¡¼¥É¤òµ¯Æ°
$ python
Python 2.7.18 (default, Jul 14 2021, 08:11:37)
[GCC 10.2.1 20210110] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from cgkit.all import *
°ÜÆ°°ÌÃÖ¤òÆþÎÏ
>>> tr=mat4(1).translation(vec3(28,21,28))
>>> import math
x¼´²óž¤òÆþÎÏ
>>> rx=mat4(1).rotate(-27.938*math.pi/180,vec3(1,0,0))
>>> rx
[1, 0, 0, 0]
[0, 0.883455, 0.468516, 0]
[0, -0.468516, 0.883455, 0]
[0, 0, 0, 1]
y¼´²óž¤òÆþÎÏ
>>> ry=mat4(1).rotate(45*math.pi/180,vec3(0,1,0))
>>> ry
[0.707107, 0, 0.707107, 0]
[0, 1, 0, 0]
[-0.707107, 0, 0.707107, 0]
[0, 0, 0, 1]
°ÜÆ°¡¢x¼´²óž¡¢y¼´²óž¤Î½ç¤ÇÀѤòµá¤á¤ë
>>> v=tr*ry*rx
>>> v
[-0.707107, -0.331291, 0.624697, 28]
[0, 0.883455, 0.468516, 21]
[-0.707107, 0.331291, -0.624697, 28]
[0, 0, 0, 1]
žÃÖ¹ÔÎó¤òµá¤á¤ë¡£
>>> v.transpose()
[0.707107, 0, -0.707107, 0]
[-0.331291, 0.883455, -0.331291, 0]
[0.624697, 0.468516, 0.624697, 0]
[28, 21, 28, 1]
¤Ç¤­¤¢¤¬¤ê¡ª


¢£pos¤Ètarget¤«¤éµá¤á¤ë¤È¤·¤¿¤é¡¢RenderMan¤Ç¤Îplacecam.c¤ò¤â¤È¤Ë·×»»¤·¤Æ¤ß¤Þ¤¹¡£
----------------------------------------
python placecam.py 3 3 3 0 0 0
position: 3.00, 3.00, 3.00
aim: 0.00, 0.00, 0.00
coneangle: 0.0000
roll: 0.00

RIB¤Ç¤Îx¼´¡¢y¼´¤Î³ÑÅÙ¤¬¤ï¤«¤ê¤Þ¤¹¡£
Rotate -35.26 1.00 0.00 0.00
Rotate 135.00 0.00 1.00 0.00
Translate -3.00 -3.00 -3.00

Translate¤Î¹ÔÎó¤Ï¡¢TX,TX,-TZ¤Çµá¤á¤Þ¤¹¡£python cgkit¤Ç·×»»¤·¤Þ¤¹¡£
¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥â¡¼¥É¤òµ¯Æ°
>>> from cgkit.all import *
>>> tr=mat4(1).translation(vec3(3,3,-3))
>>> import math
>>> rx=mat4(1).rotate(-35*math.pi/180,vec3(1,0,0))
>>> rx
[1, 0, 0, 0]
[0, 0.819152, 0.573576, 0]
[0, -0.573576, 0.819152, 0]
[0, 0, 0, 1]
>>> ry=mat4(1).rotate(135*math.pi/180,vec3(0,1,0))
>>> ry
[-0.707107, 0, 0.707107, 0]
[0, 1, 0, 0]
[-0.707107, 0, -0.707107, 0]
[0, 0, 0, 1]
>>> v=tr*ry*rx
>>> v
[-0.707107, -0.40558, 0.579228, 3]
[0, 0.819152, 0.573576, 3]
[-0.707107, 0.40558, -0.579228, 3]
[0, 0, 0, 1]
>>> v.transpose()
[-0.707107, 0, -0.707107, 0]
[-0.40558, 0.819152, 0.40558, 0]
[0.579228, 0.573576, -0.579228, 0]
[3, 3, 3, 1]

>>> s2=mat4(1).scaling(vec3(-1,1,1))
>>> s3=mat4(1).scaling(vec3(1,1,-1))
>>> s2*v.transpose()*s3
[0.707107, 0, -0.707107, 0]
[-0.40558, 0.819152, -0.40558, 0]
[0.579228, 0.573576, 0.579228, 0]
[3, 3, 3, 1]
>>>
¤Ç¤­¤¢¤¬¤ê¡ª
[0.707107 0 -0.707107 0
-0.40558 0.819152 -0.40558 0
0.579228 0.573576 0.579228 0
3 3 3 1]


¢£»ëÌîÊÑ´¹¤ò¤¹¤ë¡£3Delight nsi¤Ç¤Ï¡¢
-----------------------------------------------------------------------
SetAttributeAtTime "|persp" -0.20000000000000001
"transformationmatrix" "doublematrix" 1 [ 0.57928117234268439 -5.5511151231257827e-17 -0.81512779572855032 0 -0.59748736723752183 0.68023036589218888 -0.42461217046824468 0 0.55447467873732514 0.73299839653179255 0.39404464381712034 0 3.2762530755722121 4.6062003801361309 2.8864228342103333 1 ]

Maya¤ÎPersp¤Î°ÌÃÖ
Translate X: 3.276
Translate Y: 4.606
Translate Z: 2.886
Rotate X: -47.138
Rotate Y: 54.6
Rotate Z: 0
Scale X: 1
Scale Y: 1
Scale Z: 1

python cgkit¤Çµá¤á¤Æ¤ß¤Þ¤¹¡£
tr=mat4(1).translation(vec3(3.276,4.606,2.886))
rx=mat4(1).rotate(-47.138*math.pi/180,vec3(1,0,0))
ry=mat4(1).rotate(54.6*math.pi/180,vec3(0,1,0))
v=tr*ry*rx
v.transpose()

¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥â¡¼¥É¤òµ¯Æ°
Python 2.7.18 (default, Jul 14 2021, 08:11:37)
[GCC 10.2.1 20210110] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from cgkit.all import *
>>> import math
>>> tr=mat4(1).translation(vec3(3.276,4.606,2.886))
>>> tr
[1, 0, 0, 3.276]
[0, 1, 0, 4.606]
[0, 0, 1, 2.886]
[0, 0, 0, 1]
>>> rx=mat4(1).rotate(-47.138*math.pi/180,vec3(1,0,0))
>>> rx
[1, 0, 0, 0]
[0, 0.680235, 0.732994, 0]
[0, -0.732994, 0.680235, 0]
[0, 0, 0, 1]
>>> ry=mat4(1).rotate(54.6*math.pi/180,vec3(0,1,0))
>>> ry
[0.579281, 0, 0.815128, 0]
[0, 1, 0, 0]
[-0.815128, 0, 0.579281, 0]
[0, 0, 0, 1]
>>> v=tr*ry*rx
>>> v
[0.579281, -0.597484, 0.554478, 3.276]
[0, 0.680235, 0.732994, 4.606]
[-0.815128, -0.42461, 0.394047, 2.886]
[0, 0, 0, 1]
>>> v.transpose()
[0.579281, 0, -0.815128, 0]
[-0.597484, 0.680235, -0.42461, 0]
[0.554478, 0.732994, 0.394047, 0]
[3.276, 4.606, 2.886, 1]
>>>


¢£directionalLight¤òµá¤á¤ë
--------------------------------------------------------------
SetAttributeAtTime "|directionalLight1" 0.20000000000000001
"transformationmatrix" "doublematrix" 1 [ 0.70710678118654746 5.5511151231257827e-17 0.70710678118654746 0 0.5 0.70710678118654746 -0.49999999999999994 0 -0.49999999999999994 0.70710678118654746 0.49999999999999989 0 0 0 0 1 ]

Translate X: 0
Translate Y: 0
Translate Z: 0
Rotate X: -45
Rotate Y: -45
Rotate Z: 0
Scale X: 1
Scale Y: 1
Scale Z: 1

>>> rx2=mat4(1).rotate(-45*math.pi/180,vec3(1,0,0))
>>> rx2
[1, 0, 0, 0]
[0, 0.707107, 0.707107, 0]
[0, -0.707107, 0.707107, 0]
[0, 0, 0, 1]
>>> ry2=mat4(1).rotate(-45*math.pi/180,vec3(0,1,0))
>>> ry2
[0.707107, 0, -0.707107, 0]
[0, 1, 0, 0]
[0.707107, 0, 0.707107, 0]
[0, 0, 0, 1]
>>> v2=ry2*rx2
>>> v2
[0.707107, 0.5, -0.5, 0]
[0, 0.707107, 0.707107, 0]
[0.707107, -0.5, 0.5, 0]
[0, 0, 0, 1]
>>>
>>> v2.transpose()
[0.707107, 0, 0.707107, 0]
[0.5, 0.707107, -0.5, 0]
[-0.5, 0.707107, 0.5, 0]
[0, 0, 0, 1]

ren05_dlRenderSettings1_0001.jpg
  • -
  • -

<< 2/2