タグ付けされた質問 「tessellation」


9
球体の表面をタイルでマッピングする場合、極歪みにどのように対処できますか?
クリーンなデカルトグリッド上での場所の相互作用の方法に対処するのは簡単です。それはただの数学です。また、極などを切り捨てるだけの場合は、球体の表面のジオメトリを無視できます。しかし、極地が重要なゲームのアイデアを考え続けています。ジオコーディングされたARGとグローバルなローグライクなど。 とにかく、世界中の同じサイズの正方形のタイルで合理的に表すことができる、正方形のような場所が必要です。 これは解決された問題でなければなりませんよね? 解決策は何ですか? ETA: 赤道で-そしてあなたの正方形の位置がかなり小さいと仮定すると、最も赤道の列の北と南の列に1つの正方形を持つことで逃げることができるのに十分に近いです。そして、あなたはおそらく、45度程度まで差を手で振るだけでそれをうまくやることができるでしょう。しかし、最終的には、極方向の円周方向の列の正方形を少なくする必要があります。行の長さを1つ減らし、正方形を1/2オフセットすると、それらは16進数のようになり、コーディングを行って接続を追跡するのは比較的簡単です。しかし、ポールに向かうにつれて、ますます極端になります。 世界の表面を立方体の表面に投影するのは魅力的です。しかし、すでに使用されているよりエレガントなソリューションがなければならないと考えました。 私が立方体のことをした場合(測地を通してさらに詳しく分析するのではない)面の中心または3辺の頂点に極を配置することに関連する長所と短所はありますか?

1
ハル、ドメイン、ジオメトリシェーダーは何に使用されますか?
私は(元)雇用主のために3Dゲームプログラミングの公平な分配を行いました。また、独自のインディーゲーム用に独自のカスタムエンジンでプログラミングを行いました。 最初は、Direct3D 9とD3DX9から始めました。これらはほとんどすべてを行い、シェーダーの観点から考える必要はまったくありませんでした。 その後、最初のDirect3D 9シェーダーを作成しましたが、ほとんどすべてを1つの非常にシンプルなシェーダーで使用しました。 ゲームエンジンの最新の反復では、Direct3D 11に移行し、それによって多くのシェーダーを作成しました。GPUスキニング、GPU計算パーティクル、多くの照明効果、後処理効果をすべてGPUで行いました。本当にクールなもの。 これまでのところ、頂点シェーダーとピクセル/フラグメントシェーダーのみを使用しました。まだ行っていないことはまだたくさんありますが、頂点シェーダーとピクセル/フラグメントシェーダーが何をするのか、それが3Dパイプライン全体にどのように適合するのかについて確かな知識があると思います。 最近の開発に追いついて、新しいシェーダーステージに非常に興味を持ちました。つまり、ジオメトリシェーダー、さらに新しいハルシェーダーとドメインシェーダーです。 私はこれらのステージを使用したことはありませんが、知っていることから、Geometryシェーダーは、有効になっている場合、頂点シェーダーの後に実行され、変換された各頂点に1回(またはプリミティブごとに1回)、頂点(およびプリミティブ?)を破棄できます、新しいものを作成します(パイプラインの最初に戻ると思いますか?)。 私の推測では、ジオメトリシェーダーの主な用途は、GPUでジオメトリをプログラムで生成することです。一般的な使用法は、単一の頂点に基づいてビルボードクワッドを作成することですが、フラクタルや100%プログラムで生成できる他のものを除いて、他の多くの一般的なシナリオを実際に視覚化しません。 ハルシェーダーとドメインシェーダーについては、テッセレーション(粗い表面からより滑らかな表面を作成する?)に関連しているようで、一緒に使用する必要があるか、まったく使用しない必要があります。ここでは「パッチ」という用語も一般的なようです。 これらの新しいシェーダーステージの目的、3Dパイプラインにどのように適合するか、どのような場合にそれらを使用することを検討する必要があるのか​​、実際の用語で誰かに説明してもらえますか?

2
どのOpenGLバージョンを学習または使用しますか?
だから、私はOpenGLが初めてです...ゲームプログラミングの一般的な知識はありますが、実際的な経験はほとんどありません。 私はさまざまな記事や本を調べてOpenGLに飛び込もうとしましたが、さまざまなバージョンと、物事を混乱させる古い方法と新しい方法を見つけました。 私の最初の質問は、OpenGLの各バージョンを実行できるゲーマーの割合に関する数値を誰でも知っているかどうかです。市場シェアはどのようなものですか?2.x、3.x、4.x ... Half Life 2の要件を調べたのは、ValveがMacで実行するためにOpenGLで更新したことを知っているためです。NvidiaのWebサイトで8800 GTを見て、OpenGL 2.1のサポートをリストしました。4.xがすでにあるので、これはおそらく間違っているかもしれません。8800GTのドライバーを検索したところ、4.2をサポートしていると書かれています!少し矛盾があります、笑。 また、XPが特定のバージョンまでしかサポートしていない、OS Xが3.2のみ、またはその他のすべての種類をサポートしているなどの記事も読みました。全体として、さまざまなバージョンに対するサポートの量と、学習/使用するバージョンについて混乱しています。 学習リソースも探しています。これまでの私の検索結果は、OpenGL SuperBibleを示しています。第4版はAmazonで素晴らしいレビューがありますが、2.1を教えています。第5版は3.3を教えていますが、第4版の方が優れていること、第5版が新しい機能などを適切に教えていないことを言及しているレビューがいくつかありますか?基本的に、学習教材内でも矛盾が見られ、どこから始めればよいかさえわかりません。 私が理解していることから、3.xはまったく新しい方法を開始し、「glBegin()、glEnd()などの非推奨の機能から遠ざけたい」というさまざまな記事やレビューを読んでいますが、私が見たチュートリアルでは、この方法を使用しています。基本的に、新しいやり方はもっと複雑であるが、古いやり方は悪いと言っている人々を見てきました>。> 個人的には、前もって学ぶべきことがたくさんあることは知っていますが、テッセレーションに興味があります。私はそれが4.xにしかないと理解している限り、 [ところで、私のデスクトップは4.2をサポートしています]


1
テッセレーションとジオメトリシェーダー
私が間違っている場合は修正してください。ただし、ジオメトリシェーダージョブとテッセレーションシェーダージョブはどちらも、グラフィックパイプラインで頂点を生成するためのものです。私が知りたいのは、それらがどのように違うのか、そしてどちらをいつ使うべきかということです。

1
Unity3D-2Dスプライトをテッセレーションする方法?
2Dスプライトで動的な頂点ライティングを使用しています。大きいスプライトでは、小さいスプライトよりも照明が醜くなります。これは、すべてのスプライトが2つの三角形の四角形であるためです。広い領域を照らすのに十分な頂点がありません。 スプライトでより多くの三角形を使用する方法はありますか?彼らがカバーしている画面スペースの大きさにもよるでしょうか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.