Rendering学習日記

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

fragMOTION

使えそう。購入した。まだ登録キーが届かない(T.T)。
http://www.fragmosoft.com/


モーション作成ツールRokDeBone2のページ
http://www5d.biglobe.ne.jp/~ochikko/rokdebone.htm
メタセコイアデータと六角大王データに、IKでボーンモーションを作成するツールです。ボーン、影響範囲、頂点色、頂点位置の編集も出来ます。RDB2Xを使えば、Xファイルにも出来ます。

参考記事
http://www.zgock-lab.net/irrlicht/index.htm
オープンソースのゲーム向け3Dエンジン「Irrlicht」の解説

ICS動作データベース
http://www.ics.t.u-tokyo.ac.jp/action/
研究用BVHデータ
- | - | -

Daylon Leveller Demo

地形作成ソフトはいろいろと、趣味や目的によって使い方はいろいろだが、これは、RenderMan RIBが64×64pixelsであれば出力できた。
いろいろとフィルタかけて遊べる。
保存は出来ないが、アニメーション作成やちょっとしたショットをつくるのにはいいかもしれない。
daylon_1.jpg

DarkTreeのmetalRustySteel.dstsをつけてみる。
daylon_2.jpg

PixelSamples 4 4
ShadingRate 0.25
daylon_p4_s_25.jpg

149ドルですが、悩むところ。レンダリングはAIRを利用。
http://www.daylongraphics.com/products/leveller/index.php

開発された無料シェーダ
RenderMan | - | -

Metasequoia 表示の限界 視野の調整

基本図形の面を使って、大きい面、例えば、X,Zが5000,5000の面を生成すると、ひずんだ表示になってしまう。手前のほうが切れて表示されたり、カメラをモデルから遠ざけても切れてしまう。
表示される範囲を広くするには、メニュー「表示」「視点の設定」で
「奥行き感」または「カメラ距離」のスライダを右側に動かすと調整できる。視野角を45度くらいを入れてみてもよい。
meta01.jpg

これで解決!!
meta02.jpg

ネットのサンプルモデルを参考にしました。
ありがとうございます。
URLを明記しておこうと、検索してみたけど、わからなくなった。

cgkitで100体並べてみる。サクサクと3Delightでレンダリングしました。
厨房から、トニーたけざきのサクだよと教えてもらいました。
さすが!! ありがとうございます。
saku2.jpg

マップが反転しているようで、V方向の反転を再確認する必要あり。
AIRでレンダリング20秒。Pentium4 2.4GHz
saku3.jpg

cgkitのライトデータ
####################################
SpotLight3DS( name = "SpotLight3DS",
enabled = True,
intensity = 1.4,
shadowed = True,
shadow_size = 1024,
shadow_filter = 2.0,
shadow_bias = 0.001,
hotspot = 80,
falloff = 90,
pos=(-300, 5000, 10000),
target = (0,0,0) )
#####################################
Metasequoia | - | -

Happy Buddha!!

cgkit+Darktree+AIRで連携してみる。
ひとつひとつ実験をしてみる。Airspaceで検証してから、cgkitにスクリプトをいれてみた。
darktree_test.jpg

darktree_test2.jpg

darktree_test3.jpg

darktree_test4.jpg

darktree_test5.jpg

buddha4.jpg

完成。レンダリングは、2分33秒ほど、Pentium4 2.4GHzです。
Happy Buddhaモデルは、研究用の3DモデルIndexed Face Set (IFS) から、
http://graphics.cs.brown.edu/games/brown-mesh-set/

もともとは、The Stanford 3D Scanning Repository
http://graphics.stanford.edu/data/3Dscanrep/

腐食したシェーダをかぶせていましたが、文化的、宗教的観点から
外しました。御利益高い「金」でいってみます。
ありがとうございます。
cgkit | - | -

Nendo1.1.6->obj&3ds

Nendo1.1.6で作成したマッピングモデルをExportした。
まずは、wavefront objで、そのまま、調整してcgkitで読み込み、
マップはcube0.tifで出力されるが、cgkitはtiffに対応していないので、pngで保存。AirでRendering。スムースがきいてない。
space_obj0.jpg

このobjをMetasequoiaにimportし、「v方向を反転」にチェックする。
マテリアルを設定しなおし、スムースをいれなおす。再度、export。すべてチェックを入れて保存(「v方向を反転」も入れておく)。
cgkitで読み込んでみる。スムースがOKになった。
space_obj1.jpg

つづいて、Nendo1.1.6から3dsをexportする。
面がばらばらで独立しているようで、スムースがかからないことがわかった。メタセコイアで「オブジェクト」「近接する頂点をくっつける」「0.00」で1点にしたらスムースがかかるようになったが、再び3DSでexportしても、かからなかった。
space_3ds.jpg
Metasequoia | - | -

Cgkit Metasequoia

MetasequoiaからOBJで出力し、cgkitで49体に増やしてみる。
スポットライトはおススメ。3Delightでレンダリングは29秒。
SpotLight3DS( name = "SpotLight3DS",
enabled = True,
intensity = 1.2,
color = (1,1,1),
see_cone = False,
roll = 0.0,
outer_range = 0,
inner_range = 0,
attenuation = 0,
rectangular_spot = 0,
shadowed = True,
shadow_bias = 0.02,
shadow_filter = 4.0,
shadow_size = 256,
spot_aspect = 0,
use_projector = False,
projector = 0,
overshoot = False,
ray_shadows = False,
ray_bias = False,
hotspot = 80,
falloff = 90,
pos=(-300, 2000, 3000),
target = (0,0,0) )

なかなか勉強になります。
ありがとうございます。
meka_duplicate2.jpg
cgkit | - | -

Antiprism - Polyhedron Modelling

おもしろいプログラム発見。
POVが出力できる。
http://www.antiprism.com/


antiview.jpg
geodesic -M p 8 | antiview -v b -x ef
- | - | -

POV2RIB

http://web.archive.org/web/*/http://www9.informatik.uni-erlangen.de/~cnvogelg/pov2rib/index.html
RenderMan | - | -

メタセコイアからCgkitへ

Objを複製するスクリプトで,やっとできました。
サンプルのメカモデルを16体複製。一部重なっているところもあるけど
ご愛嬌ということで。
Python便利です。
ありがとうございます。
Renderingは3Delight
Pentium4 1.7GHzで35秒かかった。
meka_duplicate.jpg
Metasequoia | - | -

VTK + Python2

こちらを参考にして,参考の参考になります。
http://www.hp.phys.titech.ac.jp/serino/hippo.html


#rensyu.py
# -*- coding: utf-8 -*-
#qを押すと2つ目のウインドウがでる。

import vtk
sphere=vtk.vtkSphereSource()
sphere.SetRadius(1.0)
sphere.SetThetaResolution(18)
sphere.SetPhiResolution(18)
map = vtk.vtkPolyDataMapper()
map.SetInput(sphere.GetOutput())
aSphere = vtk.vtkActor()
aSphere.SetMapper(map)
aSphere.GetProperty().SetColor(0,0,1)
ren1 = vtk.vtkRenderer()
renWin= vtk.vtkRenderWindow()
renWin.AddRenderer(ren1)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
ren1.AddActor(aSphere)
ren1.SetBackground(0.2,0.4,0.6)
renWin.Render() #球体が表示される
iren.Start() #マウスで動かせる

quadric = vtk.vtkQuadric()
quadric.SetCoefficients(0.5,1,0.2,0,0.1,0,0,0.2,0,0)
sample = vtk.vtkSampleFunction()
sample.SetSampleDimensions(50,50,50)
sample.SetImplicitFunction(quadric)
contours = vtk.vtkContourFilter()
contours.SetInput(sample.GetOutput())
contours.GenerateValues(5,0.0,1.2)
contMapper = vtk.vtkPolyDataMapper()
contMapper.SetInput(contours.GetOutput())
contMapper.SetScalarRange(0.0,1.2)
contActor = vtk.vtkActor()
contActor.SetMapper(contMapper)
outline = vtk.vtkOutlineFilter()
outline.SetInput(sample.GetOutput())
outlineMapper = vtk.vtkPolyDataMapper()
outlineMapper.SetInput(outline.GetOutput())
outlineActor = vtk.vtkActor()
outlineActor.SetMapper(outlineMapper)
outlineActor.GetProperty().SetColor(0,0,0)
ren2 = vtk.vtkRenderer()
renWin2 = vtk.vtkRenderWindow()
renWin2.AddRenderer(ren2)
iren2 = vtk.vtkRenderWindowInteractor()
iren2.SetRenderWindow(renWin2)
ren2.AddActor(contActor)
ren2.AddActor(outlineActor)
ren2.SetBackground(0.2,0.4,0.6)
renWin2.Render()
iren2.Start()

VTK+Python
Python | - | -
1/2 >>