コンピューターグラフィックス

コンピューターグラフィックスの研究者やプログラマーのためのQ&A

1
OpenGLの互換性、命名規則、ARBとEXT
私は、OpenGLの命名規則と拡張機能がどのように機能するかについての一般的な理解を形成したと思いました。 これまでの私の理解は次のとおりです。 接尾辞ない -などglGenBuffers()。この機能はコアプロファイルの一部です。wikiページには、これは、バージョン1.5から始まるコアプロファイルに追加されたことを私に伝えます。 ARB -などglGenBuffersARB()。この関数は、標準化されたGL_ARB_vertex_buffer_object拡張機能の一部です。この拡張機能の仕様はGenBuffersARB()、「新しいプロシージャと関数」セクションで明確に宣言されています。「依存関係」セクションでは、ハードウェアが拡張機能をサポートしている場合、1.4 +コンテキストから潜在的にこれにアクセスできることがわかります。 EXT-一部のベンダーのみがサポートできるベンダー固有の拡張機能です。頂点バッファオブジェクトは、レジストリにEXT拡張を持たないようです。 私の理解が崩れる場所は次のとおりです。 glGenFramebuffers、としてウィキ示すように、3.0のコアに添加しました。 ここで、3.0よりも低いコアプロファイルバージョンのフレームバッファー機能にアクセスしたいと思います。だから私はそれを拡張機能として使いたい。仕様レジストリは、ARBとEXTという 2つの拡張機能があることを教えてくれます。 質問1 -ARB拡張が存在する場合、なぜEXT拡張が存在するのですか?常にベンダー固有のものよりも標準化されたものを選択しませんか? 「新しい手順と関数」セクションのARB仕様を見ると、拡張GenRenderbuffers()機能が関数を定義していることがわかります。今回はARBサフィックスはありません。GLEWには関数プロトタイプがまったくありませんglGenRenderbuffersARB()。奇妙な。 ただし、EXT仕様にはGenRenderbuffersEXT()新しい関数セクションに関数があり、GLEWにもありglGenRenderbuffersEXT()ます。 質問2 -EXTサフィックスがある場合、ARBサフィックスがないのはなぜですか?ARB関数とコア関数の名前が同じであれば、これはARBに対してどのように機能しますか? 質問3-最終的に1.4プロファイルのフレームバッファ機能が必要です。最大のハードウェア互換性カバレッジを得るために、どの拡張機能とどの機能セットを使用する必要がありますか?
14 opengl 


3
OpenGLで透明度をレンダリングするいくつかの方法は何ですか
次のように、アルファブレンディングをオンにして、表面を透明にすることができます。 glDisable(GL_DEPTH_TEST); //or glDepthMask(GL_FALSE)? depth tests break blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); しかし、これはオブジェクトが最前面から最前面にレンダリングされる場合にのみ機能します。それ以外の場合、背景の物体は、下の画像の床のように、より近いオブジェクトの前に表示されます。パーティクルとGUI要素のソートは問題ありませんが、三角形メッシュの場合、https://www.opengl.org/wiki/Transparency_Sortingで説明しているように、手間がかかり、時間がかかるようです。 これに対処する一般的な方法は何ですか?これは非常に広範であり、実装の詳細な詳細ではなく、いくつかのアプローチの簡単な説明と、関与する可能性があることを知っています。

1
明示的な光サンプリングによるプログレッシブパストレース
BRDFパーツの重要度サンプリングの背後にあるロジックを理解しました。ただし、光源を明示的にサンプリングすることになると、すべてが混乱します。たとえば、シーンに1つの点光源があり、各フレームで常に直接サンプリングする場合、モンテカルロ統合のもう1つのサンプルとしてカウントする必要がありますか?つまり、1つのサンプルをコサイン加重分布から取得し、もう1つのサンプルを点光源から取得します。合計2つのサンプルですか、それとも1つのサンプルですか?また、直接サンプルからの放射輝度を任意の項に分割する必要がありますか?


1
ボロノイ図から三角測量する方法は?
ポイントのセットから(Boost.polygonを使用して)Voronoïダイアグラムを計算しました。 各ボロノイエッジの各セルの中心を接続するドロネー三角形分割を見つけようとしますが、エッジがいくつか欠落しています。 次の画像では、赤い点が私の最初のポイントであり、青い線がVoronoïエッジです(無限のエッジは無視しました)。 斜めのエッジが欠落していることがわかります。私は何が欠けていますか?

3
VRおよび錐台カリング
VR(ステレオビュー)環境をレンダリングする場合、錐台カリングパス中に描画されるものを決定するために2つの錐台チェックを行うことをお勧めしますか、または両方の錐台を組み合わせることができる他のチェックがありますか?

4
投影されたグリッド水面の詳細
私はC ++とDirectX11で海のシーンを実装しようとしています。現在、投影されたグリッド、ガーストナー波、基本的なシェーディングがあります。私の問題は、カメラを水平に向けると、水平線が遠くに見えるので、高い頂点数であっても投影されたグリッドが不十分になることです。これらのスクリーンショットは問題を示しています: 私は問題の原因が投影されたグリッドの概念にあることを知っています(グリッドはカメラの近くに詳細であり、それから大まかに離れています)が、これを解決するにはベストプラクティスが必要です。 何か案は?

1
フーリエ基底関数と球面調和関数に関する徹底したアクセス可能な資料?
球面調和関数は、いくつかのコンピューターグラフィックス手法で表示されます。より優れたコンピュータグラフィックス開発者になるためには、それらが何であり、どのように使用されているかを深く理解する必要があると思います。 Spherical Harmonicsを理解するために最も頻繁に推奨される参考文献は、Peter-Pike Sloanによる「Stupid Spherical Harmonics Tricks」です。 私はそれを読み始めましたが、SHの「満足できる」定義を見つけられませんでした。ドキュメントは主に「基本」の他の参照に依存しているようです。他の参考文献では、フーリエ基底関数をSHの「単純なバージョン」として紹介していますが、それらを説明する優れた資料を見つけるのは難しいようです。 フーリエ基底関数と球面調和関数を理解するための、完全でアクセス可能な参考資料とは何ですか?

2
金のフレネル反射率:1より大きい赤チャンネル?
私は最近、光と物質の相互作用の背後にある物理的原理のいくつかを理解しようとしています。Naty Hoffman が講演のPhysics and Math of Shadingでフレネル反射率について説明し、材料の特徴的な鏡面反射色F 0を入射角0°でのフレネル反射率として定義します。 スライド65では、金のF 0は1.022、0.782、0.344(線形)として与えられています。ホフマンは追加します: その赤チャネル値が1より大きい(sRGB色域外) これはすべて私にはあまり意味がありません。1より大きい値は、赤チャネルに寄与する波長で、受信されるよりも多くのエネルギーが反射されることを意味します。これは本当に起こりますか? さらに、ここに金(Au)を含むいくつかの材料のウィキペディアからの反射率曲線があります。曲線は、600nm付近の赤い波長では確かに高くなりますが、100%を超えるようには見えません。
13 physics  brdf 

1
GPUプログラミングで作業効率が望ましいのはなぜですか?
私は、CUDAで並列スキャンを実行する方法に関する次の記事を読んでいます。 https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch39.html この記事では、スキャンを「作業効率」にすることに重点が置かれています。言い換えれば、GPUアルゴリズムはCPUアルゴリズムO(n)よりも多くの追加を実行するべきではありません。著者は2つのアルゴリズムを提示します。1つはO(nlogn)の追加を行う「ナイーブ」アルゴリズムで、もう1つは「作業効率」と考えるアルゴリズムです。ただし、作業効率の良いアルゴリズムでは、ループの繰り返しが2倍になります。 私の理解では、GPUは単純に巨大なSIMDプロセッサであり、ロックステップで動作するはずです。「作業効率の良い」アルゴリズムで2倍のループを実行すると、多くのスレッドがアイドル状態になり、長期的にはパフォーマンスが低下することを意味するようです。私は何が欠けていますか?

2
パストレーシング用の適切なレンズ/カメラの客観的モデルを構築する方法
smallptを学習して実験した後、小さなパストレーサーを作成しました。 自分で書いていない(理解していない)唯一のことは、初期光線がどのように計算され、カメラから発射されるかです。原則は正しいのですが、次の方法を説明するリソースを探しています。 光線の初期方向を計算します おそらく被写界深度などの効果を可能にする(ピンホールカメラではなく)実際のレンズをモデル化しますか? 最先端の数学と物理学は必須ではありませんが、十分に説明されていればOKです。

4
四元数を使用して3Dで回転とスケーリングを表すのはいつですか?
クォータニオン(複素数の4次元拡張)は、3Dベクトルの回転とスケーリングを表すために使用でき、3Dベクトルへのクォータニオンの適用には2つのクォータニオン乗算が含まれるため、対応する変換行列による乗算よりも少ない操作で済みます。ただし、特にシェーダーコードでは、代わりに線形およびアフィン変換行列がよく使用されます。 対応する変換マトリックスの代わりに、クォータニオンを使用してスケーリングと回転を3次元で表現するのが適切で望ましい(速度、安定性などのため)のはいつですか?

3
非リアルタイムレイトレーシング
リアルタイムレイトレーシング(およびレイマーチングなど)でかなり遊んでいますが、非リアルタイムレイトレーシングにそれほど時間を費やしていません-より高品質の画像やビデオのプリレンダリングなどのために。 非リアルタイムの場合に画質を改善する一般的な手法の1つは、ピクセルあたりより多くの光線を投じて、結果を平均化することです。 リアルタイムの場合に通常行うことよりも、非リアルタイムの場合に画質を改善するための優れた方法として際立っている他の技術はありますか?

3
「スキャンラインレーシング」とは
VRに取り組んでいる多くの人々がスキャンラインレースについて話しているのを聞いたことがありますが、それはモーションからフォトンのレイテンシを改善するのに役立つはずです。ただし、OpenGLでこれをどのように行うことができるかは明確ではありません。スキャンラインレーシングがどのように機能し、最新のGPUにどのように実装できるかを説明してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.