プチコンまとめWiki (初代/mkII)

投稿プログラム : レイトレーシング

パンくずリスト

2011年03月25日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム CG レイトレーシング QRコード

概要

BASICではお約束のレイトレーシングを組んでみました。
昔、PC88やX68000で実行したときは一晩ほったらかし翌日確認が当たり前でしたが、
さすがに21世紀ですよ!見てる間に完了しますよ!

プログラムについて

レイトレは雑誌のリストを打ち込んだことはあっても
自分で組むのは初めてだったのでネットで情報あさってC#で組みました。
PSET的な処理をするならC#が楽そうだったので。(Cが一番慣れてます)
で、プチコンBASICに移植しました。
作業時間的にはレイトレアルゴリズム7割、C#文法1割、プチコン制限回避2割でしょうか。

プチコンでレイトレーシングを動かすことが目的なので
レイトレーシングルーチンは汎用性とか拡張性とか全く考えてないです。
なので、このプログラムを色々いじって、とか考えないでください。
オブジェクトの座標いじっただけでも数値計算オーバーフローします。
プチコンでレイトレーシングするとこの程度の速度なのねぇ〜って感じで、
私と同世代のおっさんたちがフ〜ンってしてくれると嬉しいです。
レイトレーシングのアルゴリズムを学びたい人はググレカスw

久々のBASICが無骨すぎて生きるのが辛い

  • IF文にELSEが無い!{}が無い!
  • ローカル変数無いとGOSUB行ったら変数プギャー
  • GOTOヤバい、マジでヤバい。

プチコン(DS?)への不満

  • 変数最大値+-524287ってなんだよ・・・
    P0(0,0,0)-P1(400,400,400)の距離計算しただけでoverflowだガッデム!
  • RENUMしたいのにラベルしかなかったでござる
  • 変数名、ラベル名、8文字とか少なすぎる・・・
  • グラフィック画面が256色しか使えないのはDSハードの仕様なのかな?

スクリーンショット・動画

balls.jpg

QR コード

プチコンmkII 向けの QR コードです。

Screenshot_2.png

プログラムリスト

list01.jpg
list02.jpg
list03.jpg

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 投稿者た : 管理人さん、このような場を提供していただき、ありがとうございます。リストはタイプミスしそうなのでスクショでご勘弁を〜 (2011/03/25 (金) 10:56:39)
  • : 打ち込みました!素晴らしいです! (2011/03/26 (土) 12:42:33)
  • デマー : どの部分を書き換えればレイトレーシングの描くスピードが速くなりますか? (2011/03/29 (火) 17:59:06)
  • バイカウントメルビル : 127行目のアポストロフィーは何かの書き忘れですか? (2011/11/01 (火) 20:25:42)
  • ヨッシー君 : プチコン難しい覚えられないヨッシー! (2012/02/29 (水) 13:27:03)
  • 名無しさん : ↑誰だって始めはそうさ。DSiからの打ち消し線テスト (2012/03/01 (木) 01:04:24)
  • わぁぃ@ : >>デマーさん:ウエスト部がなければ最高速度です。 (2012/03/01 (木) 19:41:18)
  • 名無しさん : 244〜247行目をコメントアウトして実行すると光沢の無いマットな質感に (2012/03/04 (日) 22:56:03)
  • 超初心者 : このプログラムおもしろいですね。QRをつくっていただけるとうれしいのですが・・・ (2012/03/23 (金) 20:23:58)
  • 超初心者 : すみませんQRコードの1行目にsaveがついていましたよ。 (2012/04/05 (木) 15:17:25)
  • お茶犬 : 画像を荒くして高速に描写するバージョンを作った。 (2012/04/05 (木) 16:44:02)
  • black : OKがでてからどうすればいいんですか。あとどうやったら最初の絵が早くなりますか (2012/04/05 (木) 18:38:36)
  • 投稿者た : QRコードの1行目にsaveがついていたのを修正しました。ごめんなさい (2012/04/09 (月) 20:35:07)
  • プチコンまとめWiki管理人 : 2つ上の人へ。描いて終わるプログラムなのでOKが出たら終了です。あと、描画がゆっくりなのは計算に時間がかかってるからで、わざとではないので、どこかをどうすると速くなるとかの次元の話ではないです。 (2012/04/09 (月) 20:48:02)
  • 投稿者た : >blackさん これはレイトレーシングという手法で3D画像を生成する、というプログラムです。なので、画像が描き終わればそれで終わりです。
    速度については、単純な計算(球と視線の交点を求める)を繰り返しているだけなので、多少のプログラム修正では劇的に速くなったりしないです。
    今は1ドットずつ256*192回の視線計算をしていますが、お茶犬さんのように、たとえば一つの画素を2*2ドットとして128*96回の計算で済ませれば絵は荒くなりますが4倍速くなりますね。
    ちなみに初代プチコンでは6分10秒、MkIIでは5分10秒かかります。
    ってまさかの管理人さんと同時コメントw(2012/04/09 (月) 21:11:01)
  • dlack : 分かりやすいご説明ありがとうございました (2012/04/11 (水) 22:50:39)
  • hatena : あれ、プログラムリストの写真はカメラで撮った感じがあるのにQRコードの写真はとっても綺麗ですね。 (2012/04/12 (木) 20:42:42)
  • 名無しさん : QRがぼやけてる人は、QRをクリックするといいよ。 (2012/04/13 (金) 19:21:27)
  • 名無しさん : ↑↑QRコードを写真でとってたの? (2012/04/13 (金) 21:45:25)
  • 名無しさん : ああ、1パターンだけか。 (2012/04/14 (土) 12:51:28)
  • 名無しさん : 改造法ー1ー6〜9ぎょうめのDATAを書き換える (2012/04/14 (土) 12:56:29)
  • : 凄まじいインパクトを持つbasicのドットだよ。 (2012/06/14 (木) 22:47:00)
  • 名無しさん : 関係ないけどタイトルが「トイレレーシング」に見えたw (2012/06/15 (金) 23:32:07)
  • バイカウントメルビル : ↑x9QRコードはスクリーンショット撮ったんでしょ。プログラムリストを綺麗に撮るには専用の機械とかがないとできないよ (2012/06/16 (土) 09:21:13)
  • 名無しさん : ↑DSiLLとWindows PCを持ってるならドットを手打ちすることもできるよ (2012/06/16 (土) 09:32:44)
  • 名無しさん : ↑winじゃなくてもできると思いますよ。MacとかLinuxとかのOSでも大丈夫だと思います(それ用のソフトが必要になる(なければ自作?Wine?)かもしれませんが)。 (2012/06/16 (土) 09:58:09)
  • KnightFire : Very impressive! (2012/08/12 (日) 11:43:26)
  • 名無しさん : 頑張ればペイントソフトでできる。ドット絵制作ソフトの方が圧倒的に楽だが。この場合はSAVE"GRP~SAVE"COL2~して (2012/08/12 (日) 13:41:29)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.045 秒 | このページの最終更新 : 2016/02/19 (金) 20:59:36 (1361d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30