N88-BASICでレイトレーシング (7回目)

2021/6/7(月) 

N88-BASICでレイトレーシング (7回目)

 

(by ULproject for N88-BASIC, NL-BASIC)

(NL-BASICはAlt+6で高速化します)









 

反射は、前回のspecularの式

S = E - 2(E・N)N = E + (2cosθ)N

が、そのまま使えます。

視点V、視線Eの交点Pでの反射Sを前回で求め

ていますので、それらが保存されるように変更を

加えました

 

P、Sを新たなV、Eとしてその先の交点の色を追加

するということを繰り返せば反射で映ったものを

描けます

 

BASICの再帰呼出しは、ローカル変数の保存を

プログラムで作らなければならないので

必要な変数の保存と戻すサブルーチン

*PUSH、*POPをつくり呼び出しています

 

DATA文にLEVEL変数を追加し、反射回数を制限しています

また、SLCに反射による減衰量を保存し、一定数以下なら

反射を制限するようにしています

 

表示する球を4個(後ろにある光源を入れると5個)

に増やすなど、ところどころ変更が加えてあります

 

NL-BASICとblg~.zip(ray007.bas)は

以下のリンクからダウンロードできます

NL-BASIC(N88-BASIC互換?)ホームページ

Readme.txtを読んで遊んで下さい


次回

N88-BASICでレイトレーシング (8回目)


 

 

 

このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)