今回の設定

前回の結果

今回の結果

加えすぎるとプラスチックっぽくなりますし難しいですね。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |

HomogeneousExtinction 0.03 0.03 0.03
HomogeneousAlbedo 0.80 0.40 0.20
Anisotropy 0.5





vidro090517
# "CRYSTAL"という名前のマテリアルを定義
new Material "CRYSTAL"
# 透明度すべて1.0で完全透過
Transparency 1.0 1.0 1.0
# ボリューム"a"とボリューム"b"の屈折率は1.0と1.5
IOR 1.0 1.5
# 表面がボリューム"a"で、裏面がボリューム"b"
Volume "a" "b"
# "0"という名前の空間を定義
new Space "0"
# ボリューム"a"の定義
new Volume "a"
# ボリューム"a"の空間内での光の減衰を設定(0以上、50とかも設定できる)
HomogeneousExtinction 0.2 0.2 0.2
# ボリューム"a"の空間内での光の散乱を設定(0から1まで)
HomogeneousAlbedo 0.3 0.3 0.3
# ボリューム"a"の空間内での前方散乱/後方散乱の割合を設定(-1から1まで)
Anisotropy 0.8
# 点光源の定義
new PointLight
# 点光源の明るさ。テクスチャを用いることでスポットライトの効果
Intensity 96.0 48.0 24.0 "spot.bmp"
# 点光源の位置座標
Position 0.2 0.75 -0.3
# スポットライトの方向を変えるための回転行列
X 0.95782626 -0.22987832 0.17240873
Y 0.28734788 0.76626104 -0.57469577
Z 0.00000000 0.60000000 0.80000000
# 視点位置の設定
new Eye
Position 0.0 0.25 1.5
Focus 0.0 0.25 0.0
FocalLength 0.035
# ボリューム"b"の定義(デフォルト)
new Volume "b"
# オブジェクト"0"の定義
new Object "0"
# 球のモデルデータを読込む
File "sphere.obj"
# 位置の設定
Position 0.05 0.35 0.0

vidro090530
# 球のマテリアルの定義
new Material "SPHERE1"
# 外側と内側のボリュームの設定
Volume "OUTER" "INNER"
# 外側と内側の屈折率
IOR 1.0 1.33
# 完全透過
Transparency 1.0 1.0 1.0
# 床のマテリアルの定義
new Material "FLOOR"
# チェック柄のテクスチャ
Diffuse 1.0 1.0 1.0 "check.png"
# 空間の定義
new Space "0"
# 外側のボリュームの定義
new Volume "OUTER"
# 局所的な減衰の定義。starディレクトリの画像を使用する
Extinction 25.0 25.0 0.0 "C:\vidro100630x64en\sample1\star"
# 局所的な散乱の定義。starディレクトリの画像を使用する
Albedo 0.5 0.5 0.0 "C:\vidro100630x64en\sample1\star"
# 局所空間のAABBの最小座標を設定
Origin -0.25 0 -0.25
# 局所空間のサイズを設定。(-0.25, 0.0, -0.25)~(0.25, 0.5, 0.25)の空間
Size 0.5 0.5 0.5
# 天空光源
SkyLight 0.5 0.5 0.75 "sky.hdr"
# 平行光源
new ParallelLight "LIGHT0"
Emission 0.5 0.5 0.25
Direction -1.0 1.0 -1.0
# 視点座標
new Eye
Position 0.0 0.5 1.0
Focus 0.0 0.1 0.0
# 内側のボリュームの定義(デフォルト)
new Volume "INNER"
# 球の定義
new Object
File "sphere.obj"
Material "SPHERE1"
Position 0.0 0.1 0.0
# 床の定義
new Object
File "floor.obj"
Material "FLOOR"













ilInit();
iluInit();
ilutInit();
// IDの生成
iluint id = ilGenImage();
// バインド
ilBindImage(id);
// 画像の領域を生成(画像の幅、高さ、奥行き(2次元画像であれば1)、
// 1ピクセルあたりのバイト数(通常1,3,4のどれか)、フォーマット(IL_RGB等)、
// タイプ(IL_UNSIGNED_BYTE等)、コピーするメモリ(ピクセルデータ、
// 初期データがない場合はNULLでもよかったり?))
ilTexImage(width, height, depth, bpp, format, type, local);
// バインド解除
ilBindImage(0);
// バインド
ilBindImage(id);
// ピクセルのポインタの取得
ilubyte *data = ilGetData();
// 乱数の設定
for (int i=0; i<width*height*depth*bpp; i++)
{
data[i] = 255.0*randomfunction();
}
// バインドの解除
ilBindImage(0);
// バインド
ilBindImage(id);
// 上書き
ilEnable(IL_FILE_OVERWRITE);
ILboolean ret = ilSaveImage("random.dds");
// バインドの解除
ilBindImage(0);
texture3D Rand_Tex
<
string ResourceName = "random.dds";
>;
sampler Rand = sampler_state
{
Texture = (Rand_Tex);
ADDRESSU = WRAP;
ADDRESSV = WRAP;
ADDRESSW = WRAP;
MAGFILTER = POINT;
MINFILTER = POINT;
MIPFILTER = NONE;
};
...
float rand = tex3D(Rand, float3(px, py, pz)).r;

// 法線マップ
texture CM_NormalMap : OFFSCREENRENDERTARGET <
string Description = "NormalMap";
string Format = "D3DFMT_A32B32G32R32F";
float2 ViewPortRatio = {MapTimes,MapTimes};
float4 ClearColor = {0,0,1,0};
float ClearDepth = 1.0;
bool AntiAlias = false;
int Miplevels = 1;
string DefaultEffect =
"self=hide;"
"*=NormalDraw.fx;"; // オフスクリーンレンダリングに使うfxファイル
>;
// サンプラ
sampler NormalMapSampler = sampler_state {
texture = <CM_NormalMap>;
MinFilter = POINT;
MagFilter = POINT;
AddressU = CLAMP;
AddressV = CLAMP;
};




この広告は90日以上新しい記事の投稿がないブログに表示されております。