Rendering学習日記

日々3DCGの世界は進歩しているけど、勉強して理解したことをまとめていきたい。RenderMan互換レンダラーやグローバル・イルミネーション。いろんなことに好奇心を持ち面白くなってくる。目指せShader書き!!

64bit Windows10 install

とりいそぎ、メモ:
ありがとうございます。

Microsoft Windows [Version 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\Users\Downloads>python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z


C:\Users\Downloads>pip install Pillow-3.4.2-cp27-cp27m-win_amd64.whl
Processing c:\users\sensei\downloads\pillow-3.4.2-cp27-cp27m-win_amd64.whl
Installing collected packages: Pillow
Successfully installed Pillow-3.4.2
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

C:\Users\Downloads>python -m pip install --upgrade pip
Collecting pip
Using cached pip-9.0.1-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 8.1.1
Uninstalling pip-8.1.1:
Successfully uninstalled pip-8.1.1
Successfully installed pip-9.0.1

C:\Users\Downloads>pip freeze
Pillow==3.4.2

C:\Users\Downloads>pip install pygame-1.9.2b1-cp27-cp27m-win_amd64.whl
Processing c:\users\sensei\downloads\pygame-1.9.2b1-cp27-cp27m-win_amd64.whl
Installing collected packages: pygame
Successfully installed pygame-1.9.2b1

C:\Users\sensei\Downloads>pip freeze
Pillow==3.4.2
pygame==1.9.2b1

C:\Users\Downloads>pip install PyOpenGL-3.1.1-cp27-cp27m-win_amd64.whl
Processing c:\users\sensei\downloads\pyopengl-3.1.1-cp27-cp27m-win_amd64.whl
Installing collected packages: PyOpenGL
Successfully installed PyOpenGL-3.1.1

C:\Users\Downloads>pip install ode-0.13.1-cp27-cp27m-win_amd64.whl
Processing c:\users\sensei\downloads\ode-0.13.1-cp27-cp27m-win_amd64.whl
Installing collected packages: ode
Successfully installed ode-0.13.1

C:\Users\Downloads>pip install cgkit-2.0.0-cp27-none-win_amd64.whl
Processing c:\users\sensei\downloads\cgkit-2.0.0-cp27-none-win_amd64.whl
Installing collected packages: cgkit
Successfully installed cgkit-2.0.0

C:\Users\Downloads>python -m pip install --upgrade pip


Microsoft Windows [Version 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.

>viewer.py demo1.py

>viewer.py demo3.py

>render.py -rprman demo1.py
Exporting main.rib...
1 passes...
Compiling shaders...
gldistantlight: compiled.
glmaterial: compiled.
glpointlight: compiled.
glspotlight: compiled.
spotlight3ds: compiled.
Preprocessing time: 0s
Rendering "out.tif" (frame 0)...
Rendering time: 0s

>sho out.tif
cgkit | - | -

Python27とcgkit install (Windows7 32bit)

Python2.7.10をインストールするとpipもインストールされました。とても便利になりました。
pythonのモジュールはwhlが多くなってきました。

>pip install hoge****.whl

のような感じで簡単にインストールできます。

■Python2.7.10をインストールした後、
Windowsの環境変数Pathに以下を追記します。
気をつけて行います。既存のパスの最後に付けます

;C:\Python27;C:\Python27\Scripts

■ここで再起動します。

■次に、以下からダウンロードします。

http://www.lfd.uci.edu/~gohlke/pythonlibs/

Pillow-2.8.2-cp27-none-win32.whl
pygame-1.9.2a0-cp27-none-win32.whl
ode-0.13.1-cp27-none-win32.whl
PyOpenGL-3.1.1a1-cp27-none-win32.whl
cgkit-2.0.0-cp27-none-win32.whl

をダウンロードします。
またVpythonを使いたいならば
VPython-5.74-cp27-none-win32.whl

Microsoftから
VCForPython27.msiをダウンロードして
インストールします。

以下は、試したログです。
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

D:\Aplication>pip install Pillow-2.8.2-cp27-none-win32.whl
Processing d:\aplication\pillow-2.8.2-cp27-none-win32.whl
Installing collected packages: Pillow
Successfully installed Pillow-2.8.2

D:\Aplication>pip freeze
Pillow==2.8.2
pyglet==1.2.2
pyprocessing==0.1.3.22

D:\Aplication>pip install pygame-1.9.2a0-cp27-none-win32.whl
Processing d:\aplication\pygame-1.9.2a0-cp27-none-win32.whl
Installing collected packages: pygame
Successfully installed pygame-1.9.2a0

D:\Aplication>pip install ode-0.13.1-cp27-none-win32.whl
Processing d:\aplication\ode-0.13.1-cp27-none-win32.whl
Installing collected packages: ode
Successfully installed ode-0.13.1

D:\Aplication>pip install cgkit-2.0.0-cp27-none-win32.whl
Processing d:\aplication\cgkit-2.0.0-cp27-none-win32.whl
Installing collected packages: cgkit
Successfully installed cgkit-2.0.0

D:\Aplication>pip install PyOpenGL-3.1.1a1-cp27-none-win32.whl
Processing d:\aplication\pyopengl-3.1.1a1-cp27-none-win32.whl
Installing collected packages: PyOpenGL
Successfully installed PyOpenGL-3.1.1a1
■ここは時間かかります。しばらく待ちます。


■ここからVpythonのインストールです。
最初、エラーでインストールできませんでした。

D:\Aplication>pip install VPython-5.74-cp27-none-win32.whl
Processing d:\aplication\vpython-5.74-cp27-none-win32.whl
Collecting fonttools (from VPython==5.74)
Downloading FontTools-2.4.tar.gz (323kB)
100% |################################| 327kB 369kB/s
Collecting TTFQuery (from VPython==5.74)
Downloading TTFQuery-1.0.5.tar.gz
Collecting Polygon2 (from VPython==5.74)
Downloading Polygon2-2.0.7.zip (73kB)
100% |################################| 77kB 561kB/s
Collecting numpy (from fonttools->VPython==5.74)
Downloading numpy-1.9.2.tar.gz (4.0MB)
100% |################################| 4.0MB 79kB/s
Installing collected packages: numpy, fonttools, TTFQuery, Polygon2, VPython
Running setup.py install for numpy
Complete output from command C:\Python27\python.exe -c "import setuptools, t
okenize;__file__='c:\\windows\\temp\\pip-build-2wkd41\\numpy\\setup.py';exec(com
pile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __f
ile__, 'exec'))" install --record c:\windows\temp\pip-hob8vx-record\install-reco
rd.txt --single-version-externally-managed --compile:
non-existing path in 'numpy\\distutils': 'site.cfg'
non-existing path in 'numpy\\f2py': 'docs'
non-existing path in 'numpy\\f2py': 'f2py.1'
F2PY Version 2
blas_opt_info:
blas_mkl_info:
libraries mkl,vml,guide not found in ['C:\\Python27\\lib', 'C:\\', 'C:\\Py
thon27\\libs']
NOT AVAILABLE

openblas_info:
libraries openblas not found in ['C:\\Python27\\lib', 'C:\\', 'C:\\Python2
7\\libs']
NOT AVAILABLE

atlas_3_10_blas_threads_info:
Setting PTATLAS=ATLAS
libraries tatlas not found in ['C:\\Python27\\lib', 'C:\\', 'C:\\Python27\
\libs']
NOT AVAILABLE

atlas_3_10_blas_info:
libraries satlas not found in ['C:\\Python27\\lib', 'C:\\', 'C:\\Python27\
\libs']
NOT AVAILABLE

atlas_blas_threads_info:
Setting PTATLAS=ATLAS
libraries ptf77blas,ptcblas,atlas not found in ['C:\\Python27\\lib', 'C:\\
', 'C:\\Python27\\libs']
NOT AVAILABLE

atlas_blas_info:
libraries f77blas,cblas,atlas not found in ['C:\\Python27\\lib', 'C:\\', '
C:\\Python27\\libs']
NOT AVAILABLE

blas_info:
libraries blas not found in ['C:\\Python27\\lib', 'C:\\', 'C:\\Python27\\l
ibs']
NOT AVAILABLE

blas_src_info:
NOT AVAILABLE

NOT AVAILABLE

non-existing path in 'numpy\\lib': 'benchmarks'
lapack_opt_info:
openblas_lapack_info:
libraries openblas not found in ['C:\\Python27\\lib', 'C:\\', 'C:\\Python2
7\\libs']
NOT AVAILABLE

lapack_mkl_info:
mkl_info:
libraries mkl,vml,guide not found in ['C:\\Python27\\lib', 'C:\\', 'C:\\Py
thon27\\libs']
NOT AVAILABLE

NOT AVAILABLE

atlas_3_10_threads_info:
Setting PTATLAS=ATLAS
libraries tatlas,tatlas not found in C:\Python27\lib
libraries lapack_atlas not found in C:\Python27\lib
libraries tatlas,tatlas not found in C:\
libraries lapack_atlas not found in C:\
libraries tatlas,tatlas not found in C:\Python27\libs
libraries lapack_atlas not found in C:\Python27\libs
numpy.distutils.system_info.atlas_3_10_threads_info
NOT AVAILABLE

atlas_3_10_info:
libraries satlas,satlas not found in C:\Python27\lib
libraries lapack_atlas not found in C:\Python27\lib
libraries satlas,satlas not found in C:\
libraries lapack_atlas not found in C:\
libraries satlas,satlas not found in C:\Python27\libs
libraries lapack_atlas not found in C:\Python27\libs
numpy.distutils.system_info.atlas_3_10_info
NOT AVAILABLE

atlas_threads_info:
Setting PTATLAS=ATLAS
libraries ptf77blas,ptcblas,atlas not found in C:\Python27\lib
libraries lapack_atlas not found in C:\Python27\lib
libraries ptf77blas,ptcblas,atlas not found in C:\
libraries lapack_atlas not found in C:\
libraries ptf77blas,ptcblas,atlas not found in C:\Python27\libs
libraries lapack_atlas not found in C:\Python27\libs
numpy.distutils.system_info.atlas_threads_info
NOT AVAILABLE

atlas_info:
libraries f77blas,cblas,atlas not found in C:\Python27\lib
libraries lapack_atlas not found in C:\Python27\lib
libraries f77blas,cblas,atlas not found in C:\
libraries lapack_atlas not found in C:\
libraries f77blas,cblas,atlas not found in C:\Python27\libs
libraries lapack_atlas not found in C:\Python27\libs
numpy.distutils.system_info.atlas_info
NOT AVAILABLE

lapack_info:
libraries lapack not found in ['C:\\Python27\\lib', 'C:\\', 'C:\\Python27\
\libs']
NOT AVAILABLE

lapack_src_info:
NOT AVAILABLE

NOT AVAILABLE

running install
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler
options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler
options
running build_src
build_src
building py_modules sources
creating build
creating build\src.win32-2.7
creating build\src.win32-2.7\numpy
creating build\src.win32-2.7\numpy\distutils
building library "npymath" sources
No module named msvccompiler in numpy.distutils; trying from distutils
Running from numpy source directory.
c:\windows\temp\pip-build-2wkd41\numpy\numpy\distutils\system_info.py:1603:
UserWarning:
Atlas (http://math-atlas.sourceforge.net/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [atlas]) or by setting
the ATLAS environment variable.
warnings.warn(AtlasNotFoundError.__doc__)
c:\windows\temp\pip-build-2wkd41\numpy\numpy\distutils\system_info.py:1612:
UserWarning:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
warnings.warn(BlasNotFoundError.__doc__)
c:\windows\temp\pip-build-2wkd41\numpy\numpy\distutils\system_info.py:1615:
UserWarning:
Blas (http://www.netlib.org/blas/) sources not found.
Directories to search for the sources can be specified in the
numpy/distutils/site.cfg file (section [blas_src]) or by setting
the BLAS_SRC environment variable.
warnings.warn(BlasSrcNotFoundError.__doc__)
c:\windows\temp\pip-build-2wkd41\numpy\numpy\distutils\system_info.py:1505:
UserWarning:
Atlas (http://math-atlas.sourceforge.net/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [atlas]) or by setting
the ATLAS environment variable.
warnings.warn(AtlasNotFoundError.__doc__)
c:\windows\temp\pip-build-2wkd41\numpy\numpy\distutils\system_info.py:1516:
UserWarning:
Lapack (http://www.netlib.org/lapack/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [lapack]) or by setting
the LAPACK environment variable.
warnings.warn(LapackNotFoundError.__doc__)
c:\windows\temp\pip-build-2wkd41\numpy\numpy\distutils\system_info.py:1519:
UserWarning:
Lapack (http://www.netlib.org/lapack/) sources not found.
Directories to search for the sources can be specified in the
numpy/distutils/site.cfg file (section [lapack_src]) or by setting
the LAPACK_SRC environment variable.
warnings.warn(LapackSrcNotFoundError.__doc__)
C:\Python27\lib\distutils\dist.py:267: UserWarning: Unknown distribution opt
ion: 'define_macros'
warnings.warn(msg)
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat).
Get it from http://aka.ms/vcpython27

----------------------------------------
Command "C:\Python27\python.exe -c "import setuptools, tokenize;__file__='c:\\wi
ndows\\temp\\pip-build-2wkd41\\numpy\\setup.py';exec(compile(getattr(tokenize, '
open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install
--record c:\windows\temp\pip-hob8vx-record\install-record.txt --single-version-
externally-managed --compile" failed with error code 1 in c:\windows\temp\pip-bu
ild-2wkd41\numpy

■エラーが出ました!!!
MicrosoftがPython 2.7用のコンパクトなVC++ 9.0コンパイラMicrosoft Visual C++ Compiler for Python 2.7を配布しています。
Microsoftから
VCForPython27.msiをダウンロードして
インストールします。
■ここを参考にしました。ありがとうございます。
http://www.regentechlog.com/2014/04/13/build-python-package-on-windows/




仕切りなおします。再度チャレンジ!
D:\Aplication>pip install VPython-5.74-cp27-none-win32.whl
Processing d:\aplication\vpython-5.74-cp27-none-win32.whl
Collecting fonttools (from VPython==5.74)
Using cached FontTools-2.4.tar.gz
Collecting TTFQuery (from VPython==5.74)
Using cached TTFQuery-1.0.5.tar.gz
Collecting Polygon2 (from VPython==5.74)
Using cached Polygon2-2.0.7.zip
Collecting numpy (from fonttools->VPython==5.74)
Using cached numpy-1.9.2.tar.gz
Installing collected packages: numpy, fonttools, TTFQuery, Polygon2, VPython
Running setup.py install for numpy
Running setup.py install for fonttools
Running setup.py install for TTFQuery
Running setup.py install for Polygon2
Successfully installed Polygon2-2.0.7 TTFQuery-1.0.5 VPython-5.74 fonttools nump
y-1.9.2

■内容を確認します
D:\Aplication>pip freeze
cgkit==2.0.0
FontTools==2.4
numpy==1.9.2
ode==0.13.1
Pillow==2.8.2
Polygon2==2.0.7
pygame==1.9.2a0
pyglet==1.2.2
PyOpenGL==3.1.1a1
pyprocessing==0.1.3.22
TTFQuery==1.0.5
VPython==5.74

●ありがとうございます。
cgkit | - | -

Python3.3 and cgkit install for Windows7 32bit

cgkitをPython3.3環境、Windows7 32bit環境にインストールしてみました。少し難がありますが
何とか動きます。
cgkitはPython2.6や2.7環境では問題なく動きます。PyProtocolのインストールが面倒なだけでした。
Python3環境ではPyProtocolが必要なくなり、インストールが簡単になりましたが、微調整が必要なところです。
Python環境とRenderMan互換レンダラー(Pixie)をインストールしていきましょう。

■以下をWindows7 32bit環境にインストールします。
 python-3.3.5.msi
 cgkit-2.0.0.win32-py3.3.exe
 pygame-1.9.2a0-hg_56e0eadfc267.win32-py3.3.msi
 PyOpenGL-3.1.0.win32.exe
 ode-0.13.1.win32-py3.3.exe
 Pillow-2.5.0.win32-py3.3.exe
 numpy-1.9.0b1-win32-superpack-python3.3.exe

だいたいのバイナリデータはこちらからダウンロードしました。
http://www.lfd.uci.edu/~gohlke/pythonlibs/

■インストールが終わったら、Python3.3の環境設定です。
コンピュータ右クリック→プロパティ→システムの詳細設定→環境変数→システム環境変数内のPATHをクリック→「編集」をクリック
変数値の行の最後に以下のパスを記入します。

;C:\Python33;C:\Python33\Scripts;

■再起動します。

■サンプルをcgkitのチュートリアルページからscriptをとってきます。
http://cgkit.sourceforge.net/tutorials/demo1.html

■OpenGL表示のviewerを起動してみましょう。
D:\Aplication\cgkit>viewer.py demo1.py
Traceback (most recent call last):
File "C:\Python33\Scripts\viewer.py", line 699, in
viewer.run()
File "C:\Python33\lib\site-packages\cgkit\tool.py", line 198, in run
self.action()
File "C:\Python33\Scripts\viewer.py", line 389, in action
self.handleEvents(events)
File "C:\Python33\Scripts\viewer.py", line 424, in handleEvents
key = e.str
AttributeError: 'Event' object has no attribute 'str'

■画面は表示されますが、altキーを押して画面操作をしようとするとウインドウが閉じてしまい、
エラーが表示されます。

■ここでエディタを使ってviewer.pyの424行を変更します。
key = e.str

key = e.unicode
に変更してください。

■再度viewerを動かすとできます。
D:\Aplication\cgkit>viewer.py demo1.py

■続いてレンダリングをやってみましょう。事前に3delightをインストールしておきましょう。
32bit版3Delightはなくなっていました。ここではPixie Renderer(2009年開発停止)を利用します。
http://sourceforge.net/projects/pixie/files/
Pixie-2.2.6-Setup.exeをダウンロードしインストールします。

■シェーダコンパイラsdrcが
「このアプリケーションのサイド バイ サイド構成が正しくないため、アプリケーションを
開始できませんでした。詳細については、アプリケーションのイベント ログを参照する
か、コマンド ライン ツール sxstrace.exe を使用してください。」
と出るので、2010年にビルドしたPixie_2010-05-25_Win32.zipをダウンロードします。
https://github.com/scorpion007/pixie/downloads
解凍して、C:\Program Files\pixieフォルダの中身と入れ替えます。
uninstall.dat等はそのままにしておきます。

■cgkitでサンプルをPixieを使ってレンダリングしてみましょう。
D:\Aplication\cgkit>render.py -rpixie demo1.py
Exporting main.rib...
Traceback (most recent call last):
File "C:\Python33\Scripts\render.py", line 361, in
render.run()
File "C:\Python33\lib\site-packages\cgkit\tool.py", line 198, in run
self.action()
File "C:\Python33\Scripts\render.py", line 237, in action
bakestvar = bakestvar
File "C:\Python33\lib\site-packages\cgkit\cmds.py", line 981, in save
exp.exportFile(os.path.basename(filename), **options)
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 172, in exportFi
le
explgt = self.adapt(obj, ILightSource)
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 672, in adapt
return protocols.adapt(obj, interface)
File "C:\Python33\lib\site-packages\cgkit\protocols.py", line 53, in adapt
if interfaces.has_key(interface):
AttributeError: 'dict' object has no attribute 'has_key'

とエラーが出ます。
C:\Python33\Lib\site-packages\cgkit\protocols.pyをエディタで開きます。
53行目を変更します。
if interfaces.has_key(interface):

if interface in interfaces:
protocols.pyを保存します。

■再度レンダリングします。
D:\Aplication\cgkit>render.py -rpixie demo1.py
Exporting main.rib...
1 passes...
Traceback (most recent call last):
File "C:\Python33\Scripts\render.py", line 361, in
render.run()
File "C:\Python33\lib\site-packages\cgkit\tool.py", line 198, in run
self.action()
File "C:\Python33\Scripts\render.py", line 237, in action
bakestvar = bakestvar
File "C:\Python33\lib\site-packages\cgkit\cmds.py", line 981, in save
exp.exportFile(os.path.basename(filename), **options)
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 280, in exportFi
le
rpass.doPass(frameNr)
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 832, in doPass
lid = self.exporter.applyLightSource(lgt)
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 364, in applyLig
htSource
explgt.shaderSource())
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 557, in writeSha
der
f = file(filename, "wt")
NameError: global name 'file' is not defined

とエラーが出ます。
C:\Python33\lib\site-packages\cgkit\ribexport.pyをエディタで開きます。
557行を変更します。
f = file(filename, "wt")

f = open(filename, "wt")
ribexport.pyを保存します。

■再度レンダリングすると無事に黄色の球体が表示されます。
D:\Aplication\cgkit>render.py -rpixie demo1.py
Exporting main.rib...
1 passes...
Compiling shaders...
Compiling glmaterial.sl
Compiling glpointlight.sl
Preprocessing time: 1s
Rendering "out.tif" (frame 0)...
Rendering time: 7s

■テクスチャがあるサンプルをレンダリングしてみましょう。調整が必要です。
以下からサンプルをダウンロードします。(simplescene.py, uvmap.png)
http://cgkit.sourceforge.net/tutorials/renderman.html

■レンダリングしてみます。
D:\Aplication\cgkit>render.py -r3delight simplescene.py
Exporting main.rib...
3 passes...
Converting "uvmap.png"
Traceback (most recent call last):
File "C:\Python33\Scripts\render.py", line 361, in
render.run()
File "C:\Python33\lib\site-packages\cgkit\tool.py", line 198, in run
self.action()
File "C:\Python33\Scripts\render.py", line 237, in action
bakestvar = bakestvar
File "C:\Python33\lib\site-packages\cgkit\cmds.py", line 981, in save
exp.exportFile(os.path.basename(filename), **options)
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 271, in exportFi
le
rpass.doPass(frameNr)
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 1267, in doPass
self.copyImageMap(map)
File "C:\Python33\lib\site-packages\cgkit\ribexport.py", line 1297, in copyIma
geMap
img = Image.open(texmap)
NameError: global name 'Image' is not defined

PILがないということなので
C:\Python33\lib\site-packages\cgkit\ribexport.pyをエディタで開きます。

68行目あたりに追加行。
from PIL import Image
を加えます。

■再度レンダリングします。できました。
D:\Aplication\cgkit>render.py -rpixie simplescene.py
Exporting main.rib...
3 passes...
Converting "uvmap.png"
Compiling shaders...
Compiling gldistantlight.sl
Compiling glmaterial.sl
Compiling glpointlight.sl
Compiling glspotlight.sl
Preprocessing time: 0s
Rendering "out.tif" (frame 0)...
Rendering time: 6s


Windows7 32bitとPython3.3環境でのcgkit関連のインストールは
まだ課題があります。テクスチャを貼ったviewer.pyがPILとうまくつながってくれません
D:\Aplication\cgkit>viewer.py simplescene.py
Texname: 1
Loading "uvmap.png"... Traceback (most recent call last):
File "C:\Python33\Scripts\viewer.py", line 699, in
viewer.run()
File "C:\Python33\lib\site-packages\cgkit\tool.py", line 198, in run
self.action()
File "C:\Python33\Scripts\viewer.py", line 384, in action
self.draw(self.cam, self.width, self.height)
File "C:\Python33\Scripts\viewer.py", line 676, in draw
renderer.paint(root)
File "C:\Python33\lib\site-packages\cgkit\glmaterial.py", line 104, in loadTe
Data
img = Image.open(fullname)
File "C:\Python33\lib\site-packages\cgkit\_Image.py", line 148, in open
raise ImportError("No module named Image. Please install PIL (http://www.py
honware.com/products/pil/index.htm).")
ImportError: No module named Image. Please install PIL (http://www.pythonware.c
m/products/pil/index.htm).

D:\Aplication\cgkit>viewer.py simplescene.py
Texname: 1
Loading "uvmap.png"... Traceback (most recent call last):
File "C:\Python33\Scripts\viewer.py", line 699, in
viewer.run()
File "C:\Python33\lib\site-packages\cgkit\tool.py", line 198, in run
self.action()
File "C:\Python33\Scripts\viewer.py", line 384, in action
self.draw(self.cam, self.width, self.height)
File "C:\Python33\Scripts\viewer.py", line 676, in draw
renderer.paint(root)
File "C:\Python33\lib\site-packages\cgkit\glmaterial.py", line 104, in loadTe
Data
img = Image.open(fullname)
AttributeError: 'module' object has no attribute 'open'

他objのインポートなど微調整が必要です。
引き続き、検証します。
ありがとうございます。
cgkit | - | -

cgkit works under CentOS6.2 on virtualbox

Hello,
I installed cgkit under CentOS6.2 on virtualbox
2012-02-12 03:54:34

# uname -a
Linux 2.6.32-220.4.1.el6.i686

following are:
1.boost
Installed: boost-devel-1.41.0-11.el6_1.2.i686

2.gcc
# yum install gcc

Installed: kernel-headers-2.6.32-220.4.1.el6.i686
Updated: glibc-common-2.12-1.47.el6_2.5.i686
Updated: glibc-2.12-1.47.el6_2.5.i686
Installed: glibc-headers-2.12-1.47.el6_2.5.i686
Installed: glibc-devel-2.12-1.47.el6_2.5.i686
Installed: mpfr-2.4.1-6.el6.i686
Installed: cpp-4.4.6-3.el6.i686
Installed: ppl-0.10.2-11.el6.i686
Installed: cloog-ppl-0.15.7-1.2.el6.i686
Installed: gcc-4.4.6-3.el6.i686

3.freeglut
# yum install freeglut3
Installed: freeglut-2.6.0-1.el6.i686

4.cmake
Installed: cmake-2.6.4-5.el6.i686

5.# yum --enablerepo=epel install fltk
Installed: fltk-1.1.10-1.el6.i686

6.# yum --enablerepo=epel install aqsis
Installed: ilmbase-1.0.1-6.1.el6.i686
Installed: OpenEXR-libs-1.6.1-8.1.el6.i686
Installed: tinyxml-2.6.1-1.el6.i686
Installed: aqsis-libs-1.6.0-3.el6.i686
Installed: aqsis-core-1.6.0-3.el6.i686
Installed: aqsis-data-1.6.0-3.el6.noarch
Installed: aqsis-1.6.0-3.el6.i686


7.freeglut-devel
Installed: xorg-x11-proto-devel-7.6-13.el6.noarch
Installed: libXau-devel-1.0.5-1.el6.i686
Installed: libxcb-devel-1.5-1.el6.i686
Installed: libXdmcp-devel-1.0.3-1.el6.i686
Installed: libX11-devel-1.3-2.el6.i686
Installed: libXext-devel-1.1-3.el6.i686
Installed: libXfixes-devel-4.0.4-1.el6.i686
Installed: libXdamage-devel-1.1.2-1.el6.i686
Installed: libXxf86vm-devel-1.1.0-1.el6.i686
Installed: libdrm-devel-2.4.25-2.el6.i686
Installed: mesa-libGL-devel-7.11-3.el6.i686
Installed: mesa-libGLU-devel-7.11-3.el6.i686
Installed: freeglut-devel-2.6.0-1.el6.i686

8.
Installed: python-setuptools-0.6.10-3.el6.noarch
Installed: libgfortran-4.4.6-3.el6.i686
Installed: python-nose-0.10.4-3.1.el6.noarch
Installed: atlas-3.8.4-1.el6.i686
Installed: numpy-1.3.0-6.2.el6.i686
Installed: PyOpenGL-3.0.0-2.1.el6.noarch

9.
Installed: python-imaging-1.1.6-19.el6.i686

Download:Pyserials
http://pypi.python.org/pypi/pyserial
pyserial-2.6.tar.gz
# python setup.py install

10.
Installed: libstdc++-devel-4.4.6-3.el6.i686
Installed: compat-libstdc++-33-3.2.3-69.el6.i686

11.pygame
Installed: portmidi-217-3.el6.i686
Installed: SDL_image-1.2.10-1.el6.rf.i686
Installed: SDL_ttf-2.0.9-6.el6.i686
Installed: SDL_mixer-1.2.11-3.el6.i686
Installed: pygame-1.9.1-4.el6.i686

12.
Installed: gcc-c++-4.4.6-3.el6.i686

13.
Installed: ode-0.11.1-2.el6.i686
Installed: ode-devel-0.11.1-2.el6.i686
Installed: compat-libstdc++-296-2.96-144.el6.i686
Installed: Pyrex-0.9.8

14.
Installed: python-devel-2.6.6-29.el6.i686
Download PyODE
# python setup.py build
# python setup.py install

15.
Installed: scons-1.2.0-2.el6.rfx.noarch

16.
Installed: autoconf-2.63-5.1.el6.noarch
Installed: automake-1.11.1-1.2.el6.noarch

17.
Download PyProtocols
# python setup.py --without-speedups install

18.
Download cgkit-2.0.0alpha9.tar.gz
# cd cgkit-2.0.0alpha9/
# cd supportlib/
# scons
# cd ..
# python setup.py build
# python setup.py install
# cd utilities/
# python checkenv.py
----------------------------------------------------------------------
Python 2.6.6 (r266:84292, Dec 7 2011, 20:38:36)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)]
Platform: linux2
----------------------------------------------------------------------
Python version: 2.6........... OK
PyProtocols................... is installed
PyOpenGL...................... is installed
PIL........................... is installed
pygame........................ is installed
PyODE......................... is installed
PySerial...................... is installed
cgkit (base).................. 2.0.0alpha9 (Feb 10 2012, 20:34)
cgkit (C++ lib)............... OK
cgkit (all)................... OK

render.py -r3delight simplescene.py
OK.

viewer.py -N softimage demo1.py
OK.

but
Navigation mode (Default: Maya) does not work.
As long as it works, I wouldn't worry about it.
CentOSのウィンドウ設定でAltキーをWindows keyに変更したらできました。

Thank you.
Yuichirou Yokomakura
cgkit | - | -

Python CgkitでのTransform

Aqsisのサンプルが参考になったのでPythonインタラクティブモードで確認してみました。

localhost ~]$ python
Python 2.6.6 (r266:84292, Sep 11 2012, 08:28:27)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from cgkit.cgtypes import *
>>> from cgkit.ri import *
>>> from math import *
>>> transm = mat4 ( 1 )
>>> transm = transm.lookAt( (10,10,10), (0,0,0) )
>>> transm
[0.707107, -0.408248, -0.57735, 10]
[-0.707107, -0.408248, -0.57735, 10]
[-8.94467e-18, 0.816497, -0.57735, 10]
[0, 0, 0, 1]
>>> transm = transm.inverse()
>>> transm
[0.707107, -0.707107, 0, -0]
[-0.408248, -0.408248, 0.816497, 0]
[-0.57735, -0.57735, -0.57735, 17.3205]
[-0, 0, -0, 1]
>>> RiTransform ( transm )
Transform [0.707106781187 -0.408248290464 -0.57735026919 -0.0 -0.707106781187 -0.408248290464 -0.57735026919 0.0 0.0 0.816496580928 -0.57735026919 -0.0 -0.0 0.0 17.3205080757 1.0]
>>>
cgkit | - | -

POV-Rayのdefault cameraのangleを求める

以下、Pov-rayでは未検証ですが、計算してみました。

パースペクティブ・カメラの主なディフォルト設定(省略するとこの設定値が使用されている。)
camera {
perspective
location <0,0,0>
direction <0,0,1>
right <1.33,0,0>
sky <0,1,0>
up <0,1,0>
look_at <0,0,1>
}

画角(angle)
angle、right、directionの関係は次式で表される(right_lengthとdirection_lengthはそれぞれrightとdirectionベクトルの長さ)。


direction_length = 0.5 * right_length / tan(angle / 2)

デフォルトカメラのangleは、
1=0.5*1.33/ tan(angle / 2)

tan(angle / 2)=0.5*1.33

angle / 2=atan(0.5*1.33)

angle=2*atan(0.5*1.33)
で求められるので、以下python cgkitで求めてみました。

>python
Python 2.6.5 (r265:79096, Mar 19 2010, 18:02:59) [MSC v.1500 64 bit (AMD64)
win32 Type "help", "copyright", "credits" or "license" for more information.
>>> from cgkit.all import *
>>> right=vec3(1.33,0,0)
>>> right.length()
1.3300000000000001
>>> direction=vec3(0,0,1)
>>> direction.length()
1.0

>>> import math

コサイン60度を求めてみる。1/2になるかな。
>>> math.cos(math.radians(60))
0.50000000000000011

アークタンジェント:atan(x) を求める。
>>> 2*math.atan(1.33*0.5)
1.1736957392994543

ラジアンを度に変換する。
>>> math.degrees(2*math.atan(1.33*0.5))
67.247812294345678

>>> angle=math.degrees(2*math.atan(1.33*0.5))
>>> angle
67.247812294345678

ということで67度となりましたが、あっているかどうかは
実際POV-RAYで検証しなくてはなりません。
cgkit | - | -

Mac OS X 10.6.6(Snow Leopard)にcgkitインストール

Mac OS Xに入っているPythonは、
Leopard → 2.5.1、
Snow Leopard → 2.5.5、2.6.1、
Lion → 2.5.5、2.6.6、2.7.1 が最初からインストールされています。

cgkitをダウンロードしインストール設定してみました。参考にしたのは下記のサイトです。
ありがとうございます。
Python cgkit 2.o on (Snow) Leopard
http://sites.google.com/site/lefranckcom/home/pythoncgkit2oonsnowleopard

■http://www.macports.org/install.phpからMacPorts-2.0.3.pkgをダウンロード
し、インストールします。

■ターミナルを開き、
$ sudo port install python26 scons boost +python26

と入力します。管理者パスワードを入れるとダウンロードがはじまります。
boost_python libraryなどコンパイルされインストールがはじまります。とても長く、しばらく時間がかかります。python27もインストールされました。

cgkitを使うためには、新たにインストールしたpython2.6を使っていきます。サポートライブラリをコンパイルするためです。以下PATHの設定を書き換えます。

$ cd ~
でホームディレクトリに行き、ls -aで.bash_profileがあるか確認します。

$ nano .bash_profile
でnanoエディタを開き
#PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"

PATH=/opt/local/bin/python2.6:$PATH
export PATH

これをなるべく上の行に書き加えます。保存して終了します。
PATHを反映させるために
$ source .bash_profile

$ echo $PATH
で書き加えたPATHが入っているか確認します。

$ python2.6
と打つとビルドした日付が出ます。
$ which python2.6
/opt/local/bin/python2.6

■Compiling the support library
cgkitを入手します。
http://sourceforge.net/projects/cgkit/files/cgkit/
cgkit-2.0.0alpha9.tar.gzをダウンロードします。
cgkit-2.0.0alpha9-py2.5-macosx10.4.dmgは使えません。

cgkit-2.0.0alpha9.tar.gzを解凍します。

$ cd cgkit-2.0.0alpha9/
$ cd supportlib/
$ cd src/
$ nano polyhedrongeom.cpp

line 401行目,
typedef GLvoid (CALLBACK *TessCallback)(...);

以下のように書き換えて保存します。
typedef GLvoid (CALLBACK *TessCallback)();

$ cd ..
一つ上に上がり、
$ nano SConstruct

SConstruct を開きline 38行目:
env.Append(CCFLAGS = ["-arch", "i386", "-arch", "ppc"])

env.Append(CCFLAGS = ["-arch", "x86_64"])
に書き換えます。64ビットでコンパイルできるようにします。

$ scons
と入力するとサポートライブラリのコンパイルがはじまります。

$ cd ..
一つ上に上がり、
$ cp config_template.cfg config.cfg
コピーをつくります。
config.cfgを開き

46行目:
BOOST_LIB = "boost_python"
のコメント#を消します。

118, 119行目を次のようにします。
INC_DIRS += ["/opt/local/include"]
LIB_DIRS += ["/opt/local/lib"]

以上を変更保存します。次にビルドします。

$ python2.6 setup.py build

続いて
$ sudo python2.6 setup.py install

以上でcgkitできあがりです。
チェックしてみましょう。
$ cd utilities/
$ python2.6 checkenv.py
-------------------------------------------------------------------
Python 2.6.7 (r267:88850, Jan 13 2012, 17:06:12)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
Platform: darwin
-------------------------------------------------------------------
Python version: 2.6........... OK
PyProtocols................... is installed
PyOpenGL...................... is installed
PIL........................... is installed
pygame........................ is installed
PyODE......................... is installed
PySerial...................... is installed
cgkit (base).................. 2.0.0alpha9 (Jan 24 2012, 00:13)
cgkit (C++ lib)............... OK
cgkit (all)................... OK

cgkitでOKが出ていれば成功です。
ところで、上記のPyProtocols...PyOpenGL...PIL..pygame...PyODE..PySerial..はmissingになっていると思います。まだ完全にcgkitは動いてくれません。後ほどMacPortsを使ってPyProtocols以外は、インストールすることができます。

続いて複数のpythonが入っているように設定を変えます。
現在切り替えられるpythonを確認するために
$ port select --list python

とすると、
Available versions for python:
none
python25-apple
python26
python26-apple
python27

複数のpythonがでてきます。現在activeなのはありません。バージョンを切り替えるには、
$ sudo port select --set python python26

で切り替わります。
Available versions for python:
none
python25-apple
python26 (active)
python26-apple
python27


PILはいくつかのライブラリに依存しています。Python Imaging Libraryインストール
$ port search py26-pil
$ port deps py26-pil
$ sudo port install py26-pil

PyOpenGLインストール
$ port deps py26-opengl
$ sudo port install py26-opengl

PyODEインストール
$ port search py26-ode
$ port deps py26-ode
$ sudo port install py26-ode

pygameインストール
$ port search py26-game
$ port deps py26-game
$ sudo port install py26-game

PySerialインストール
$ port search py26-serial
$ port deps py26-serial
$ sudo port install py26-serial

PyProtocolsインストール
PyProtocols-0.9.3をダウンロード
http://peak.telecommunity.com/
PyProtocols-0.9.3フォルダに移動し、
$ python2.6 setup.py --without-speedups install

RenderManレンダラ
3delight-10.0.4-Darwin-Universal.pkgをインストールし、
cgkitサイトのチュートリアルから
demo1.py
demo2.py
demo3.py
を保存します。

サンプルファイルがある場所で
$ viewer.py demo1.py
で動作するか確かめます。
さらに
$ render.py -r3delight demo1.py
Exporting main.rib...
1 passes...
Compiling shaders...
Preprocessing time: 0s
Rendering "out.tif" (frame 0)...
3DL ERROR: Two different displays can't write to the same file (will keep 'file' and ignore 'framebuffer')
Rendering time: 0s

$ $ i-display out.tif
out.jpg
cgkit | - | -

displacementbound

cgkitへRIBを呼び出す。


r=RIBArchive(
filename = 'butu.rib', pos = (0,0,0) )
r.rib='Color 0.9 0.9 1.0\nSurface "plastic"' #r.rib='Surface "check_ref'

t=RIBArchive(
filename = 'butu.rib', pos = (0.5,0,0) )
t.rib='Color 1 0.9 0.9\nSurface "plastic"'

Plane(
lx = 50, ly = 50, pos = (0,0,0.6), material = GLMaterial(diffuse=(0.8, 0.7, 0.7)) )
Plane(
lx = 50, ly = 50, pos = (0,-0.44,0), rot= mat3().fromEulerXYZ(radians(90), 0, 0), material = GLMaterial(diffuse=(0.8, 0.6, 0.6)) )
s=RIBArchive(
filename = 'butu.rib', pos = (-0.5,0,0) )
s.rib='ShadingRate 0.25\nAttribute "trace" "int displacements" [1]\nAttribute "displacementbound" "float sphere" [0.001] "string cordinatesystem" ["shader"]\nDeclare "Km" "uniform float"\nDisplacement "dented" "Km" 0.05\nSurface "metal" "Ks" [1.5] "roughness" [1.0]\nColor [ 0.8 0.8 0.8 ]'


ありがとうございます。。(2009.8/16記事)
0612.jpg
cgkit | - | -

RiCurves その4

cubicに書き換えてみました。
RiCurves("cubic",nverts,"nonperiodic","P",points,"constantwidth",curveWidth,RI_NULL)
勉強ですね。ありがとうございます。
curves2_cubic.jpg
cgkit | - | -

RiCurves その3

Essential RenderManのサンプルを参照して、Python cgkitで試してみました。RiCurvesの表記の仕方がわからなくて、最初エラーが出てしまいました。
RiCurves("linear",COUNT,"nonperiodic","P",points,"constantwidth",curveWidth
RI_NULL)
・・・
TypeError: 'int' object is not iterable

原因はCOUNTはいらないということでしょうか。スクリプト書き直したら、できました。ありがとうございます。
curves2.jpg


#/* curves2.py - create a set of curves */
import random, math
import cgkit.cri
from cgkit.cgtypes import *

# 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())

COUNT = 1000

def jitter(scale):
val=random.random()*1000
return (val/500-1)*scale

points=[]
pappend=points.append
nverts=[]
red=(1,0,0)
curveWidth=0.3
fov=30

#/*Generate Curve Postions*/
for i in range(COUNT):
tx=(math.sin(i*0.3)*i*50)/COUNT+jitter(5)
ty=(math.cos(i*0.3)*i*50)/COUNT+jitter(5)

pappend(0)
pappend(0)
pappend(50)

pappend(0.1*tx)
pappend(0.1*ty)
pappend(25)

pappend(0.4*tx)
pappend(0.4*ty)
pappend(0)

pappend(tx)
pappend(ty)
pappend(-25)

nverts.append(4)


RiBegin(RI_NULL)
RiDisplay ("curves2.tiff","framebuffer","rgb",RI_NULL)
RiProjection ("perspective","fov",fov,RI_NULL)
RiWorldBegin()
RiTranslate(0,0,200)
RiColor(red)
RiRotate(45,1,0,0)

RiCurves("linear",nverts,"nonperiodic","P",points,"constantwidth",curveWidth,RI_NULL)

RiWorldEnd()
RiEnd()

cgkit | - | -
1/6 >>