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

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

4
VRとモニターの違い
どうやらMacintoshコンピューターはOculus Riftを処理できないようです。これは、「劣った」グラフィックカードのためです。しかし、VRは外付けモニターのようなものであってはなりませんか?また、コンピューターグラフィックスに関して、VRゲームは、Macintoshで簡単に実行できる他のゲームとどのように違いますか?問題はどこにありますか?

2
ガンマを考慮することはまだ重要ですか?
カラー画像を表示するときに、さまざまなモニター(モバイル画面を含む)が大幅に異なるガンマ関数を使用しますか?色を表現する標準化された方法はありますか?それはモニターのガンマに応じて変換できますか?それとも今日の必要性を排除するのに十分に類似していますか?

2
レイトレーサーのサブピクセルレンダリング
フォントレンダリングでは、サブピクセルレンダリングを使用するのが一般的です。ここでの基本的な考え方は、ピクセルをRGBコンポーネントに分割し、それぞれの値を個別に計算することです。各コンポーネントはピクセル全体よりも小さいため、高品質のアンチエイリアスが可能です。 レイトレーサーに対して同じことを行う、明らかに類似した方法があります。各サブチャネルで再構成フィルタリングを個別に行います。 しかし、これを行うレイトレーサーへの参照を見つけることができなかったことに驚きました。特に、すでにスペクトルレンダリングを行っている場合、これは明らかなことのように思えます。私が聞いたことのない雑誌のこの論文は、関連しているようです。しかし、全体的に、サブピクセルレンダリングは一般的なことではないようです。私の質問:なぜですか?

3
ゲームでピクセルを直接描画できるのに、OpenGLやDirectXなどのグラフィックフレームワークがあるのはなぜですか?
ゲームやその他のグラフィックを多用するアプリケーションは、OpenGLやDirectXなどのフレームワークを使用します。また、ピクセルシェーダーやDX12などの機能が必要です。 しかし、ピクセル単位ですべてを描画できるのに、なぜこれらすべてのフレームワークとGPU機能が必要なのでしょうか? まず、ゲームはピクセル単位で描画されるようにコンパイルする必要があります。これにより、ゲームの実行可能サイズが大きくなる可能性がありますが、より高速で、32ビットカラーGPU(古いものでも)で動作しますか? 最初の3Dゲームはピクセルごとに描かれたのは知っていますが、なぜ今はそうしていないのですか?

3
OpenGLと3Dアニメーションソフトウェアのレンダリングの違い
OpenGLなどを使用すると、かなりリアルな外観のものを「リアルタイム」60 FPSでレンダリングできます。ただし、たとえばMayaや3ds Maxで同じシーンのビデオを作成しようとすると、同じ解像度とFPSであっても、レンダリングに非常に長い時間がかかります。 これら2つのタイプのレンダリングが同じ結果に対して異なる時間を要するのはなぜですか? 注:はい、3Dアニメーションソフトウェアは、リアルタイムで実行できるものよりも非常に優れた画像を生成できることを理解しています。しかし、この質問のために、私は平等な複雑さのシーンに言及しています。

2
コンピューターグラフィックスのテッセレーションとは
最近のゲームでは、テッセレーションと呼ばれるものに気づきました。これをオンにすると、フレームレートが破壊されます。 オンにすると、アンチエイリアシングのように見えることに気付きました。 GPUの正確な機能に関する詳細情報を教えてください。



3
物理ベースのシェーディング-アンビエント/間接照明
M. PharrとG. HumphreysによってPBRTを研究した後、物理ベースのパストレーサーを実装しました。今、OpenGL ESを使用して(iPhoneアプリケーションで)物理ベースのレンダリングをリアルタイムグラフィックスに適用しようとしています。 Oren-NayarとCook-Torranceを拡散反射鏡BRDFとして使い始めたいのですが、問題があります:間接照明をどのようにモデル化すればよいですか? (pbrtに含まれるような)パストレーサーでは、直接/間接照明を考慮して光線の経路をたどるので、間接/周囲光はパストレーシングアルゴリズムから「自動的に」与えられます。 OpenGL ESで記述された物理ベースのレンダリングで間接照明をモデリングするにはどうすればよいですか?リアルタイムコンピューターグラフィックスを使用して?

2
シャドウマッピングでの投影エイリアスの処理
3D印刷用の小さな建物を作るために、単純な手続き型3Dモデリングをいじっています。例: モデルを画面上で読みやすくするために、単一の指向性ライトの基本的なシャドウマッピングを実装しました。シーンは変わらないので、シーンの軸に合わせたボックスを使用してシャドウマップを1回レンダリングするだけで、シャドウマップの境界がどうあるべきかを把握します。影と境界線は、すべての行列が正しいように見えますが、少し近づくとひどく見えます: 私が行った読書から、私はピーターのパンニングとそれに対して何ができるかを理解していますが、ぼんやりしたエッジは射影エイリアシングの一種であると信じているため、私の基本的な実装では何かが間違っていると思います。 ピクセルシェーダーをハッキングして、シャドウテクセルの境界を表示しました。 テクスチャにバイリニアフィルタリングを適用しました(これがないと、深刻な影のにきびができます)。悲しいことに、PCFでの私の試みも失敗しました-それはちょうど不規則に見えます: バイリニアフィルタリングを無効にした単一のサンプルケースを次に示します。 これは「典型的な」射影エイリアシングのように見えますか?おそらくカスケードでシーンにクリップされた視錐台を使用したシャドウマップの動的レンダリングは、問題に対処できますか? 編集:私が得るものを示すために、双線形フィルタリングのクローズアップ、ポストシャドウ比較を追加します。内側の端が原因で、悪い影のにきびが現れます。スタックされた仮想ブロックを使用してモデリングしており、適切な結合操作を行っていません。私の読書から、多面体にブール演算を実装することは簡単ではありませんが、静的なシャドウボリュームを実装するだけでなく、いくつかの3D印刷ソフトウェアをクリーンアップすることもできます。

3
レイトレーシングの高さフィールドの最新のアルゴリズムは何ですか?
長年にわたって、レイトレーサーで高さフィールドの地形を描画するためのさまざまな手法に関する多くの論文がありました。一部のアルゴリズムは、グリッドを直接(またはクアッドツリーを介して)レイマーチします。また、地形をポリゴンメッシュに変換し、標準の光線と三角形の交差テストを使用するものもあります。この研究は過去数年で進んでいるようで、過去10年で書かれた論文を見つけるのは難しいですが、メモリとコンピューティング(CPUとGPUの両方)のバランスは依然として変化しています。 現在、どのようなアルゴリズムがハイエンドデスクトップマシンで最高のパフォーマンスを提供しますか?または、単一の答えがない場合、現在の最適なアルゴリズムのパフォーマンス特性はどのように異なりますか?

1
最先端のリアルタイムヘアレンダリングはどのように機能しますか?
髪のシミュレーションとレンダリングが特に難しいことはよく知られていますが、実際に信じられない髪を提案するゲームの例はまれです。大量の繊維を実際にシミュレートすることや、非常に多くのストランド間で発生する可能性のあるさまざまな散乱イベントをシミュレートすることの難しさを想像することは非常に簡単です。 特にリアルタイムシナリオの場合、誰かがヘアレンダリングの主な課題を公式化できますか?これらを最新の技術でどのように克服しますか?いくつかの事実上の標準理論モデルが使用されていますか? 明確にするために、リアルタイムでは必ずしもゲームのコンテキストを意味するわけではありません。

2
ほとんどのフォトリアリスティックレンダラーが同様のマテリアルテストシーンを持っているのはなぜですか?
ほとんどのフォトリアリスティックレンダラーには、非常によく似たマテリアルテストシーンがあります。以下に例を示します。 ブレンダー ミツバ Vray 私の質問は、なぜこの特定のモデル/スタイルが材料をテストするために選ばれているのですか?ティーポット、球体、スザンヌに比べていくつかの利点がありますか?材料試験の他の一般的なシーンはありますか?
15 material 

2
OpenGLでトラックボールを実装する方法は?
変換について多くのことを読んだ後、アプリにトラックボールを実装するときが来ました。原点からマウスがクリックされた場所までのベクトルを作成し、次に原点からマウスがクリックされた場所まで別のベクトルを作成する必要があることを理解しています。 私の質問は、(x、y)ピクセル座標を世界座標に変換する必要がありますか、または画像空間ですべてを行う必要がありますか(画像空間はピクセルで測定されたシーンの2D投影であると考えてください)? 編集 リッチー・サムズの答えはとても良いものです。しかし、私は少し異なるアプローチを取っていると思います。間違っているか何かを誤解している場合は修正してください。 私のアプリケーションでは、私は持ってSimplePerspectiveCamera受け取り、クラスpositionのカメラの、position of the target私たちは、見ているup、ベクトルfovy、aspectRatio、nearとfarの距離を。 それらを使用して、ViewマトリックスとProjectionマトリックスを作成します。今、ズームイン/ズームアウトしたい場合、視野を更新し、投影マトリックスを更新します。パンしたい場合は、カメラの位置を移動して、マウスが生成するデルタを確認します。 最後に、回転には、角度軸変換またはクォータニオンのいずれかを使用できます。このために、マウスが押されたピクセル座標を保存し、マウスが移動したときにピクセル座標も保存します。 座標の各ペアについて、球の公式、すなわちsqrt(1-x ^ 2-y ^ 2)を与えられたZ値を計算し、targetto PointMousePressedからtargetto PointMouseMovedに行くベクトルに計算し、外積を行います。回転軸を取得し、任意の方法を使用して新しいカメラ位置を計算します。 しかし、私の最大の疑問は、(x、y、z)値がピクセル座標で与えられていることtargetであり、使用しているベクトルを計算するとき、これは世界座標のポイントです。この座標系の混合は、私がやろうとしている回転の結果に影響していませんか?
15 opengl  trackball 

1
球面上で手続き型ノイズを生成するにはどうすればよいですか?
球体の表面に手続き型ノイズを生成したい(例:惑星または大理石のテクスチャボールを手続き的に生成する)。もちろん、標準のノイズアルゴリズムを使用してそれを球体にマッピングすることもできますが、これには、極または他の場所の歪みなど、球体に平面を投影するというすべての問題があります。 ボリュームノイズを生成し、球体を「切り取る」ことができると思いますが、これは不必要に効率が悪いようです。ノイズにグリッドベースのアーティファクトがある場合、これらは球体上に均一に表示されません。さらに、少なくともシンプレックスノイズの場合、3Dノイズから2Dスライスを切り取ることは、2Dノイズをすぐに生成することとは一般的に異なります。 これらの問題を回避する方法はありますか?例えば、球体にネイティブにノイズを生成することにより?ノイズは、少なくともパーリンノイズの品質、理想的にはシンプレックスノイズの品質を持つ必要があります。

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