Rendering学習日記

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

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 | - | -

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


3Delight | - | -

Spotlight設定

メタセコイアで作った簡単なシーンをmetasequoia pythonでRIB出力した。オブジェクトはスムージングを計算するしないを選択できるように、オブジェクト名にno_をつけておく。
オブジェクト名がdistantlight,spotlight,maya_spotlightであると、3delightのシェーダを出力する。影はレイトレーシングを利用できるようにスクリプトを設定した。
ここでは、出力したライトのカラーを変更した。明るさintensityも調整する。当初spotlightのintensityを大きくしても変化しなかったが、距離を地面近くまでもってきたら、かすかに光る。何とintensity 700000と、とんでもない数字を入れたら、それらしく見えるようになった。
scene03.jpg

以下は、ライトの設定部分です。まだまだ課題はたくさんあります。
ありがとうございます。


Attribute "visibility" "trace" [1]
Attribute "visibility" "transmission" ["Os"]
Attribute "visibility" "transmission" "opaque"
Attribute "light" "shadows" "on"
LightSource "spotlight" 2
"from" [250.0 380.0 -340.0]
"to" [0.0 0.0 -0.0]
"lightcolor" [0.800 0.100 0.100]
"string shadowmap" "raytrace"
"float intensity" 400000
"float coneangle" 0.52
"float conedeltaangle" 0.52
LightSource "ambientlight" 3
"lightcolor" [0.300 0.300 0.300]
LightSource "maya_spotlight" 4
"from" [250.0 340.0 340.0]
"to" [0.0 0.0 -0.0]
"lightcolor" [0.100 0.100 0.800]
"string shadowmapname" "raytrace"
"float intensity" 1.0
"float coneangle" 0.8
"float penumbraangle" 0.15

3Delight | - | -

The DynamicLoad Procedural Primitive

DSOを作成してみた。
3Delightマニュアルのsponge.cをコンパイルしてみる。

>CL /Ox /DWIN32 /LD /I%DELIGHT%/include sponge.c %DELIGHT%/lib/3D
elight.lib

sponge.dllができる。

以下,sponge.ribとして作成。
Display "sponge2.tiff" "file" "rgb"
Format 320 240 -1
ShadingRate 1
Projection "perspective"
Translate 0 -2.5 2.5
Rotate -10 1 0 0
Rotate -40 0 1 0
WorldBegin
TransformBegin
Translate 0 2 0.5
Procedural "DynamicLoad" ["sponge" "3"] [-1 1 -1 1 -1 1]
TransformEnd
WorldEnd

sponge.PNG

sponge2.PNG



>renderdl sponge.ribでできあがり。
続きを読む>>
3Delight | - | -

パラメトリック面,ジオメトリック変換と階層モデリング

RCの第6章と第7章のコンパイルを行いました。
7章のCSG作成では,以下のように行う。
>cl /I%DELIGHT%/include %DELIGHT%/lib/3delight.lib main.c surf_go.c listing8_2.c listing8_3.c

>cl /I%DELIGHT%/include %DELIGHT%/lib/3delight.lib main.c wedge_go.c listing8_2.c listing8_3.c

アルファチャンネルで抜けているがPNGにしたら,ちょっと青みがかっています。以下は,コンパイルしたリスト。

listing6_1
listing6_1.PNG
listing6_2
listing6_2.PNG
listing6_3
listing6_3.PNG
listing7_2
listing7_2.PNG
listing7_3
listing7_3.PNG
listing7_4
listing7_4.PNG
3Delight | - | -

多角形

回転体によるポリゴンの作成。第5章。
RC本のリスト。うまくコンパイルできなくて悩んでいたら,misc.tarとch5.tarがあるではありませんか。Camera位置なども含めて,うまくコンパイルできました。ありがとうございます。先人の教え,勉強です。
それぞれのヘッダファイルを加えてコンパイルしました。

>cl /I%DELIGHT%/include %DELIGHT%/lib/3delight.lib main.c listing5_3.c listing8_2.c listing8_3.c

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

main.c
listing5_3.c
listing8_2.c
listing8_3.c
Generating Code...
c:\3dlight6\ch5\listing5_3.c(65) : warning C4716: 'PolySurfOR' : must return a value
c:\3dlight6\ch5\listing5_3.c(123) : warning C4716: 'PolyBoid' : must return a value
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.

/out:main.exe
"C:\Program Files\3Delight/lib/3delight.lib"
main.obj
listing5_3.obj
listing8_2.obj
listing8_3.obj

List5-1
listing5_1.PNG

List5-2
listing5_2.PNG
3Delight | - | -

2次曲面

Cのファイルが関数ごとに分割されてコンパイルする場合は,

>cl /I%DELIGHT%/include %DELIGHT%/lib/3delight.lib quadmain.c listing4_1.c

mainのファイルの後に続けて関数が入ったファイルを続ける。

Windowsの環境変数のなかのDELIGHTのパスに" "をつけると良いと,以前書いたが,フローティングサーバを起動している場合はライセンスエラーになることがわかった。
コンパイルする際に"%DELIGHT%"と" "で囲んであげると良いようだ。

RC本の第4章をコンパイルしてみた。

6種類の2次曲面。List4-1
quadsmain4-1.PNG

回転体。List4-2
quadsmain_pin.png

RiTorusで波形の模様を生成する。List4-3
wavemain.PNG
3Delight | - | -

アニメーションの出力

サンプルを動かしてみる。エラーが出ましたが,実行して連番TIFFが出力されました。
C:\3Dlight6>cl /I%DELIGHT%/include %DELIGHT%/lib/3delight.lib anim2_8.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

anim2_8.c
anim2_8.c(21) : warning C4996: 'sprintf' was declared deprecated
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\stdio.h(345) : see
declaration of 'sprintf'
Message: 'This function or variable may be unsafe. Consider using sprint
f_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'
anim2_8.c(82) : warning C4033: 'ColorCube' must return a value
c:\3dlight6\anim2_8.c(108) : warning C4716: 'ColorCube' : must return a value
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.

/out:anim2_8.exe
"C:\Program Files\3Delight/lib/3delight.lib"
anim2_8.obj

C:\3Dlight6>anim2_8.exe

良いですね。以下の10枚が出力されました。
anim.01.PNG
anim.02.PNG
anim.03.PNG
anim.04.PNG
anim.05.PNG
anim.06.PNG
anim.07.PNG
anim.08.PNG
anim.09.PNG
anim.10.PNG
3Delight | - | -

「実践CGの誘い」から

3DelightとVisual C++を使ってコンパイルしてみた。
RMRのソースファイルのmainにそれぞれのリストのサンプルをあわせてコンパイルした。勉強になります。
List2-2
2-2
List2-3
2-3
List2-4の色を変更
2-4
List2-5の色を変更
2-5
List2-7とList2-3を使ってインスタンスしている。
2-7
3Delight | - | -

C API

RenderManの本,「実践CGの誘い」コンパニオンのサンプルをコンパイルしてみる。

3Delightだと,マイコンピュータの環境変数DELIGHTの箇所に
"C:\Program Files\3Delight"と,""でくくっておくこと。
再起動して,Visual Studio 2005のコマンドプロンプトから,

>cl /I%DELIGHT%/include %DELIGHT%/lib/3delight.lib listing2_1.c

すると,
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

listing2_1.c
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.

/out:listing2_1.exe
"C:\Program Files\3Delight/lib/3delight.lib"
listing2_1.obj

後は,3Delightのライセンスサーバを起動しておいて,

>listing2_1.exe

TIFFが出力されました。
RMR
3Delight | - | -
1/2 >>