Cでレイトレーシング 2

by ULproject for C (Windows)

 

レイトレーシングの仕組みや

式の意味、導出などは

N88-BASICでかんたんにレイトレーシング1回~8回

N88-BASICでかんたんにレイトレーシング1~8回

続編BASICでレイトレーシング1回~7回

16回分の記事で紹介しています

 

N88-BASICでかんたんにレイトレーシング9回

N88-BASIC用と

N88-BASICで3DCGの行列(matrix) 第1回~

N88-BASIC用を組み合わせてCで書きました

 

0は減衰しない点光源(陰対応のRGB版)

反射と透過の追跡

 

大文字のみはベクトル、小文字のみはスカラー

 

ついでに以下の操作できるキーを追加しました

 

0 1 2 3 4、で動かす球の選択

9、で光源を水色の球内へ

@ : ; ] p [、で球を上下左右後前に動かす(+shiftで移動大)

q w e、で点の大きさ1 2 4

(点が大きいほうが荒いので速い)

 

↑ ↓ ← → / \、で視点を上下左右後前に動かす(+shiftで移動大)

スペースで後ろを向く

 

a、でラジコン方式、sで視点移動方式

enter、でリセット

 

Windows用のプログラムは長くなりますので

GlutとOpenGLを使用してWindowと描画関係を

簡素にしています

 

ただし、CONSOLEアプリとWIN32アプリの

両方でコンパイルできるようにしてあります

その他、詳しくは

Cでレイトレーシング 1

を見て下さい

 

ray302.c、mat302.h、mat302.c

のコンパイルには

Glut.h , Glut32.lib

が必要で

実行には

Glut32.dll

が必要です

GLUT(OpenGL Utility Toolkit)はサポートが終了

していて入手困難な場合は

GLUT互換のfreeglutが存在するらしいですので

こちらを試して見て下さい

 

どちらも、入手不可で、コンパイルなしで

実行する場合は

ray302.exe

を、実行して下さい

こちらは、GLUTを使用せずにコンパイル

しているため、

Glut32.dll

は必要ありません

(OpenGLを使用するためのdllは

Windowsに標準搭載だったはずなので

そのまま動くはずです)

 

続編BASICでかんたんにレイトレーシング第7回

VL-BASIC拡張命令のレイトレーシング

(VL-BASIC付属サンプルのb/g6.bas)

より工夫していない分、動作速度は遅いですが

了承願います

 

ray302.c, mat302.h, mat302.c, ray302.exeを含む

cl30201.zipは

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

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

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

 

 

 

 

プログラミングを学べる記事をテーマにまとめました

 

「プログラミング言語」

というテーマに

プログラミングを学べそうな記事をまとめました

 

ブログの「記事一覧」を選び「テーマ別」を選び

「プログラミング言語」を選んで下さい

 

N88-BASIC, C, アセンブラ(8086系)

の比較記事などを集めました

初心者向けのものから

上記のどれか一つ以上が分かっている方が

他の言語仕様を推測できる記事までを

入れてあります

 

参考になるかは分かりませんが

一度見てみて下さい

 

 

 

 

ブログで紹介しているプログラムが動かない場合

があります

 

VL-BASIC,NL-BASIC,XL-BASICとN88-BASICの

仕様が違うところを修正したためです

 

ダウンロード版は修正済ですのでこちらを試してください

 

主にSCREEN,CONSOLE,DEFDBLについて

仕様変更しました

 

NL-BASICとnl~.zip(~.bas)は

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

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

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

 

VL-BASICとvl~.zip(~.bas)は

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

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

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

 

XL-BASICは

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

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

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