2012-01-23 5 views
1

私はしばらく私の3Dグラフィックスを勉強してきましたが、私はすべての仕組みをより深く理解したいと思っています。私がしたいのは、DirectXまたはOpenGLを使用せずにシンプルなゲームを作成することです。私は信じている数学の大部分を理解していますが、私が反対している問題は、ウィンドウに表示されているピクセルをどのように制御するのか分かりません。リアルタイムレンダリングウィンドウを最初から作成するにはどうすればよいですか?

ウィンドウ内の各ピクセルの色を指定する方法を教えてください。

バッファやイメージの剪断問題や恐ろしい効率の問題が発生する可能性があると私は理解していますが、私は自分のプログラムを作成して、最低レベルから高レベル言語、レンダリングプロセスが動作します。どこから始めたらいいのか分かりません。私はBMPを出力する方法を考え出しましたが、実行中のプログラムが毎秒20フレーム以上吐き出されるようにしたいと思います。これをどのように達成するのですか?

答えて

0

ピクセルの値を配列に入力してビットマップとして表示できる環境を選択できます。この方法で、ビデオメモリのRGB値をポーチするのに最も近づきます。 WPF、Silverlight、HTML5/Javascriptでこれを行うことができます。あなたがフルスクリーンを作っていなければ、これらの技術は今のところ十分なはずです。

In WPF and Silverlight, use the WriteableBitmap.

In HTML5, use the canvas

そして、それは線、円、ベジェ曲線、3D投影を描画するロジックを実装するのはあなた次第です。

これは非常に楽しく、多くのことを学びます。

0

私は、ある特定のプラットフォームでそれを達成する方法に特定の関心を持たせるのではなく、低レベルからレンダリングプロセスを完全に制御することに興味があるということを読んでいます。

SDLのようなライブラリを見れば、直接描画することができるが、多くのプラットフォーム特有の問題を抽象化することができるフレームバッファーが得られるはずです。あなたが探しているものであるかどうかを知るための良いチュートリアルがあります。this tutorialとそれ以降の同じシリーズのものを参照してください起動して実行しています。

0

レンダリングエンジンを作成したいと思っています。これは、パイプラインとMatriceクラスを所有していることを意味しています。 3D座標を2Dポイントに変換するために使用するものです。

あなたが探していた2Dポイントを持っているとき。たとえば、窓で言うことを使うことができます。ブラシを選択して、三角形の値を同時に描きながら描くことができます。

私はビットマップが必要なのか分かりませんが、テクスチャという言葉を練習したい場合は、弱いコンピュータのコースではもちろん、1秒あたりのフレーム数が大幅に増えるかもしれません。

レンダリングがどのように最下位レベルで動作するかを理解することを目的としていれば、これは間違いなく良い習慣である。

jtシュヴィンスウィッガ

関連する問題