KEY Depth Production
- dnoise -
[TOP Page]
■download
.file Name
| .Size [byte]
| .Infomation
|
---|
[DNoise]
| 236,542 |
・・・テクスチャを自己生成するプログラム[2001/04/09] |
■news
久々更新
何時の間にかサイトが無かった事に気付いたので作り直した.
dDNoise
ノイズ発生関数を用いて,テクスチャを生成するプログラム.
(昔のことでよく覚えていませんが,)
スクリプトが使えます.初期状態で70種類の「石」,100種類の「色」,3種類の「関数」,1種類の「島」を生成するテンプレートが用意されています.詳しくはreadme.txtをヨンデクダサイ.
サンプル画像
石A
石B
石C
石D
以下readme.txtの内容
[STX]
//------------------------------------------------------------
// DNoise(仮)
// DNoise.cpp
// Copyright (c) KEY Depth Product. 2000/02/10
//------------------------------------------------------------
//DNoise:
// テクスチャ自己生成プログラム
//
■ 動作環境 ------------
Winodws 98 / 2000
■ 基本動作について ------------
main.inc によって定義されているテクスチャを自己生成して表示します.
*.inc をコマンドラインで送るとそのファイルをスクリプトとして読んで実行します.
(ドラッグ&ドロップすればいいだけです)
Ex. DNoise.exe math.inc
■ 生成テクスチャ ------------
// 木[1]
色[100+] (color.inc)
- いろいろ
石[70+] (stones.inc)
+ T_GrntXX 基本
+ T_GrntXXa 透過付
- T_StoneXX 合成
島[1] (island.inc)
- T_MatXX 基本
関数[3] (math.inc)
- T_MatXX 基本
■操作方法
[*] 初期サイズ
[+] 拡大
[-] 縮小
[F5] スクリプト再読み込み
フレーム停止方法 タイトルバーを持って移動します(ぉぃ
終了方法 右上の×を押すと終了します.
環境によっては終了までのラグライムがあります.
■ main.inc について ------------
このプログラムは起動と同時に main.inc を読み込み定義した順に表示します.
declare( "NAME", ...);
となっている部分の NAME という名前のオブジェクトが作られます.
declare には2つの状態があります.テクスチャ定義と色定義です.
・色の定義方法
色定義を行うためには色を定義を以下の関数で囲います.
BeginColorTable();
....
EndColorTable();
と書きます.
色単位は倍制度小数点演算を用いています.
たとえば赤 0.0 <= r <= 1.0 です.
色はRGBFを用います.
R : 赤
G : 緑
B : 青
F : 透過(filter)
・テクスチャの定義方法
色定義空間以外のところで declare を使用して定義します.
テクスチャ定義には先ほど使った色を使うことができます.
またテクスチャ定義ををテクスチャにに使えます【なぞ
・補足
あまりしっかりしたスクリプトではないですので,
基本的に関数内に関数を入れてください.
構造は C に似ています.
インタプリンタじゃありません.全部読み込みます.
変数等の定義は存在しません.
なぜか main() から始まります.そして return 0;を返します.
(return 1;はエラーです)
関数の終わりには必ず「;」をつけてください.( 関数の引数を除く)
・リファレンス
comment is [/* ... */] | [// ....]
string is ["..."]
num is [0.123]
color is [colorName()]
texName is ["textureName"]
... is [expand]
// 定義
declare( string name, Texture tex );
declare( string name, Color col );
// 色情報
Color rgb( num r, num g, num b ); // f = 0.0;
Color rgb( num gray ); // r=g=b=gray; f = 0.0;
Color rgbf( num r, num g, num b, num f ); //
Color rgbf( num gray ); // r=g=b=f=gray;
// 透過情報 ( 色の指定とともに使います )
filterNum filter( num filterNum ); // f = filterNum;
// テクスチャ情報
Texture texture( Pigment pig ); //
Texture texture( texName tex, afine, ... ); //
// 着色情報
Pigment pigment( color );
Pigment pigment( color, filterNum );
Pigment pigment( textureType tex, colorMap col );
Pigment pigment( textureType tex, textureOption, colorMap col );
// 色群情報
colorMap color_map( colorMap_ col_, ... );
colorMap_ color_map_( num fast, num lase, Color col1, Color col2 );
// アフィン変換情報 ( 拡大縮小・回転 )
afine scale( num x, num y, num z ); // 拡大縮小
afine rotate( num x, num y, num z ); // 回転
// テクスチャタイプ情報
textureType granite(); // 花崗岩,御影石(?)
textureType marble(); // 大理石(?)
// テクスチャオプション情報
textureOption turbulence( num n ); // 揺らぎ
textureOption omega( num n ); // 角速度
textureOption lamda( num n ); // 波長
// 色定義セパレータ
void BeginColorTable(); // 開始
void EndColorTable(); // 終了
// 判らなかったらサンプルを見ると早いです.
// それでも判らなかったら作者に聞いてください.
追加. // modify key 2001/04/09 addition
functions
verstion( num ); // ヴァージョン情報
zoom( num ); // 拡大率
mathFunctions
sin( num );
cos( num );
tan( num );
asin( num );
acos( num );
atan( num );
exp( num );
log( num );
sqrt( num );
abs( num );
srand( num ); // ランダムの初期化
rand(); // ランダム生成
RAND_MAX(); // ランダムの最高値
X = A * B; // 計算
type-specifier
int,long,float,double,string
statement
for( , equ, ){} // ループ
while( equ ){} // ループ
do{}while( equ ); // ループ
if( equ ){}; // 判定
if( equ ){}; // 判定
operator
=,+,-,*,/,%,<<,>>,++,--,^
+=,-=,*=,/=
<,>,==,<=,>=,!=
||,&&
new,delete,*,&
■ 開発環境 ------------
OS Windows 2000
IDE Visual C++ 6.0
UPU Celeron 300A-450[MHz]
MEM 512[MByte]
■ 更新履歴 ------------
2001/04/09
Ver 0.0.4を公開
関数等を追加
2001/04/08
Ver 0.0.3を公開
○構文解析機能追加
なんだかんだいってもやはりスクリプトがないと他の定義ができないので
スクリプトを機能を追加してみ貸した.実際,構文解析はめんどくさいもので,
いまだによくわかっていない.前作の謎STGでもスクリプトモドキ(定義ファイ
ル)を作ったけれど,その定義ファイル読み込み,比較..云々で大半の時間を
使ってしまっているのも実情.もっと簡単にスクリプトは組めないだろうか【ォィ.
いいところにCMagaを発見「特集1スクリプト言語を作ろう」(2000/05)を発見!
なんだか非常に難しそう.ついでに判ってはいるけど,やれないという状況
(やり方が判らない)とりあえず構文解析プログラムの構造解析をするのが先か(w
2001/03/31
Ver 0.0.2を公開
○石テクスチャを勝手に表示
2001/03/29
Ver 0.0.0.1を公開
○木テクスチャを勝手に表示
■ 謝辞 ------------
このプログラムの内部構造は POV-RAY 3.1g を参考に DNoise を用いて
テクスチャを生成しています.
色等に関してはincファイルを元に作られています
オープンソースの POV-RAY に感謝.
オープンソースの Enomoto Sanshiro 氏に感謝.
このプログラムの内部構造は Parasol Version 0.1.2 を用いています.
オープンソースの Enomoto Sanshiro 氏に感謝.
//------------------------------------------------------------
■バグ等がありましたら下記まで知らせてくれるとありがたいです^^/
・KEY_Depth
[ETX]
過去の話題:
[TOP Page]