トップページ > 記事閲覧
DrawCube3Dを多用する場合の軽量化について
名前:TENO 日時: 2014/02/20 14:16

はじめまして、TENOと申します。 現在、読み込んだ画像を3Dで描画するプログラムを組んでいます。 LoadSoftImageから読み込んだ画像の色情報をGetPixelSoftImageから配列に保存し、 DrawCube3Dを用いて1ドットずつ描画してみたのですが、描画数が多くなると当然ながら重くなってしまいます。 (32*32pxの画像を10箇所に描画...など、この画像と同じ結果を可能な限り軽くするのが目的です。 ttp://uploda.cc/img/img53058d5d5b381.PNG) 何か解決策がありましたらご教授よろしくお願いします。
メンテ

Page: 1 |

Re: DrawCube3Dを多用する場合の軽量化について ( No.1 )
名前:管理人 日時:2014/02/22 22:56

DrawCube3D で1ドットづつ描画して実用的な速度が出るのが理想的ですが、残念ながら まだマシンにそこまでの性能がありませんので、とりあえず ・見えない面は描画しない ・1画像のドットを一度に描画する の二つを行う必要があります サンプルプログラムを作成してアップしましたので、よろしければご覧ください m(_ _)m https://dxlib.xsrv.jp/temp/3DDotDrawTest.zip 中にはコンパイル済みの実行ファイルと、サンプルプログラムのソースファイルと、 実行に必要な画像ファイルが入っています ソース量が多くなってしまったので、コメントがかなり少ないです やっていることは 「3D描画する画像を解析して、必要最低限のポリゴン数でドット絵の3D描画を実現する」 です あと、頂点バッファと頂点インデックスバッファを使用して描画に必要な情報を VRAM に置くことで描画時に頂点データを GPU 側に転送する負荷を減らしています 私の環境は Windows7 64bit Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz NVIDIA GeForce GTX 660 Ti ↑なのですが、サンプルプログラムで描画数を増やして行ったところ 9500個までは 60fps をキープできました シェーダーを使って最適化すればまだまだ高速化できる余地はありますが、 とりあえず今回のサンプルで実用的な速度がでるかどうか試してみてください あと、プログラム中にコメントが本当に殆ど無いので、不明な点がありましたらご質問ください m(_ _;m
メンテ
Re: DrawCube3Dを多用する場合の軽量化について ( No.2 )
名前:TENO(解決) 日時:2014/02/24 14:51

ご回答ありがとうございます。 作成していただいた実行ファイルを試してみたところ、 十二分に実用的な速度が出ていることを確認しました。 サンプルプログラムを読んでみたのですが、 コメントが少なくてもやっていることを明確に教えていただいたのでなんとか理解できそうです。 それにしても読みやすいプログラムで...すごいです。 私も管理人様のようなプログラムを組めるように精進したいな、と思います。 また何かあったときはよろしくお願いします。本当にありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存