Computingのサイトで公開されました。Librariesの創立者の一人で、C++言語の規格にも大きく貢献した人物です。Abrahamsへのインタビューを行いましたが、英語版がBoostProのサイトで公開されました。厳しい寒波の中、いかがお過ごしでしょうか、谷関@jirohclです。今回、簡単なボクセライザーを作ったのでその実装方法を紹介しようかと思います。ボクセル化自体、いろいろな方法がありますが今回はポリゴンデータからラスタライザの要領で直接ボクセル化を行う方法です。FrameBufferを用いてボクセル化を行うにはGLUT入門で有名な@tokoik先生が記事を書いているのでそちらを参照してもらえればと思います。開始点から徐々に辺を満たすように線を引く方法です。voxel}}この方法での利点はどれだけ広大なシーンであっても問題なくvoxelizeを行えるという点です。この方法の場合テクスチャ参照を行い、色を決定する場合かなり面倒なことになるので基本的にはFrameBufferを用いた実装をした方がいいと思います。最後に今回の実行結果。それでは皆様、良い御年を。Calenderも早いものでもう8日目となりました。@cpp_akiraさんのお誘いで今回の記事を書くことになりました、@jirohclこと谷関です。今回はHaskellで適当にOpenGL使って遊びましょうと言うことでGPipeの紹介をしたいと思います。GPipeの紹介ですが、このパッケージはGLSLをHaskell上でDSLとして表現したものになっています。よってGLSL等の手続き型シェーダコードを書くことなく、全てHaskellのコードで書く事ができるので、せっかく関数型つかってるのに・・・と肩を落としている人は使ってみるといいんじゃないでしょうか。GLUTで部分importをしていますが、これは何も考えないで全てimportしてしまうとGPipeとGLUTの宣言が衝突してしまうのからです。Float))この見慣れないPrimitiveStreamと言うのは、VertexBufferに送る情報です。これはTriangleの他に、"Line"、"Point"も定義されているので用法、用量を守って正しくお使い下さい。(1:.0:.0:.()))この部分で実際のデータを渡してあげます。TriangleStripはOpenGLユーザーでおなじみの次々と三角形を補完してやるアレです。他にもGPipeではTrianglesも定義されているので用途に応じて使い分ければ良いでしょう。shaderとラスタライザに渡すデータに変換しています。ここがDSLで実現されたVertexShaderの部分です。Shader部分をラスタライズしますと伝えなくてはいけません。(li:.li:.li:.())そしてこの部分で実際に表示する色を決定しています。(0.1:.0.3:.0.6:.()))newFrameBufferColorで新しくFrameBufferを作り、先ほどまでのコードをpaintColorで全てつなげば完了。簡単!と、簡単にGPipeの紹介を行ったわけですが、これを見て判るとおり、あまり手間をかけずにHaskellを使ってshaderで遊べるのが魅力だと思います。Programming2011年12月2日金曜日ブログ始めましたみなさま初めまして。弊社ロングゲートも創立から2年が経過しようとしています。この度、弊社の活動を広くみなさまに知っていただこうと、ブログを開設する運びとなりました。弊社からのお知らせのみならず、『プログラミングの魔導書』についてや、技術情報など、様々な情報を発信していきたいと思います。これから末永くお付き合いいただければ幸いです。