数想空間 / ODDSPHERE
例えば一番上の作品「切断」のソースファイルは、等値面表示拡張版サンプルファイルから得た、次のような単純なものです。他の作品もほとんど同様のシーンファイルで描きました。データは、このようにたった4つのテキスト改行で並べた数値で、それでこれだけの複雑な形状が得られます。
#version 3.0 #include "colors.inc" #include "textures.inc" light_source {<5, 10, 5> color White}
#declare D3DFUNC = function {"odd_sphere", <1, 0, 0.4>,
#declare ISOCOL= pigment { function {D3DFUNC} color_map
[ 1, 1.001 color rgbt <1, 0, 0, 0.5> color rgbt <0, 0, 1, 0.5>] } frequency 0.3 }
camera { location <20, 10, 20> angle 38 look_at <0,-3,0>} object{ isosurface { function {D3DFUNC}
eval max_gradient 10 accuracy 0.015 max_trace 4 } pigment {ISOCOL} finish { phong 0.3 diffuse 1 ambient 0.6 } rotate y*150 no_shadow } |
・lpodcut.datファイル 2.3 2.44 -2.99 -3.1
|
3次元等値面表示拡張版は、ほんとに素晴らしいとしか言いようがありません。ここに、鈴木良一氏に感謝申しあげます。
さすがに内部にまでは着色はできませんが、内部に生じた空隙表面にも着色しています。 |
|
0 50.8 -5.1 |
更にちょっと悪戯、3次元等値面の探索精度であるaccuracyを荒く 7.2 にしてみました、色付けもturbulence 0.12で少しばかり乱しました。球体群は円盤群と化し、場に基づく色付けは同心円で、まるで昔の飴玉「変わり玉」の断面の様相を呈しちゃいました。 |
レンダリング時間も大幅に短縮できるし、摩訶不思議なテクスチャと言え無くもない。この画像でははっきり見えません、画像をクリックしてラージファイルで見られることをお勧めします。 |
function { D3DFUNC } color_map { [0.5, 0.01 color rgbt <0, 1, 0, 0.5> color rgbt <1, 1, 0, 0.5>] [1, 1.001 color rgbt <0,0,1, 0.7> color rgbt <1, 0, 0, 0.5>] } frequency .7 } |
|