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

OpenGLは、デスクトップおよびワークステーション市場を対象とするグラフィック標準およびAPIです。専用のコンピューターハードウェアで簡単に加速できるように設計されているため、ほとんどの実装では、従来のソフトウェアレンダリングよりもパフォーマンスが大幅に向上しています。現在、OpenGLはCADソフトウェアやコンピューターゲームなどのアプリケーションに使用されています。また、クロスプラットフォームです。OpenGL標準は、OpenGL ESも制御するKhronosグループによって制御されています。


5
OpenGL対OGRE:初心者にはどちらが最適ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 6年前休業。 ゲーム開発に興味があり、優れたC / C ++プログラミングスキルを持っています。私は以前にOGREを試しましたが、出発点としてOGREとOpenGLのどちらを学ぶべきか知りたいです。 私の理解では、OGREはOpenGLおよびDirectXのラッパーです。それで、OGREを学ぶことを前提として、ゲームを開発するためにOpenGLも学ぶ必要がありますか? また、誰かが私にOpenGLの良いチュートリアルを指摘できますか?私はOGREが十分に文書化されていることを発見しました(ディストリビューションにも付属しています!)が、OpenGLの場合、私がやってきたチュートリアルのほとんどは古くなっています。
10 opengl  ogre 

4
WebGLおよびOpenGL ESの機能がありません
私はWebGLを使い始めて、OpenGL(さらにはOpenGL ES)のエクスペリエンスを簡単に活用できることに満足しています。ただし、私の理解は次のとおりです。 OpenGL ESはOpenGLのサブセットです WebGLはOpenGL ESのサブセットです これはどちらの場合でも正しいですか?その場合、不足している機能を詳しく説明するリソースはありますか? たとえば、欠落している注目すべき機能の1つはglPushMatrixおよびglPopMatrixです。WebGLには表示されませんが、検索ではOpenGL ESマテリアルで参照されているものは見つかりません。

3
マインクラフトの世界の照明
Minecraftは主に高さマップに基づいており、そのheigtmap情報を使用して世界に光を当てるゲームです。私の理解から、ハイトマップの最高点は太陽光の影響を受けた領域の終わりです。その上にあるものはすべて日光に照らされ、その下にあるものはすべて、半径8ブロックの近くにある光の影響を受けます。 したがって、世界の最上部に浮島がある場合、その下にあるすべてのものは本質的に洞窟と見なされます。2つのライトが同じポイントに影響を与える場合、より明るいライトが優先されます(それについては不明です)。 どちらの方法でも、Minecraftsライティ​​ングモデルにはいくつかの問題があります。まず、世界にハイトマップがない場合、太陽光を放出するはずであるものとそうでないものを正確に把握するのが難しくなります。単純な方法は、世界が(私の場合)浮遊岩であると仮定し、各軸を両方向からトラバースし、岩の始点と終点を理解することです。しかし、岩のへこみが暗闇にあるはずがないので、これは問題を完全に排除しません。 Minecraft自体は、ブロックのマテリアルに関する情報と一緒に、チャンク内のライト情報をキャッシュします。したがって、世界が変更された場合にのみ、照明を更新する必要があります。残念ながら、そのプロセスは、更新やライトの迅速な変更では依然としてかなり遅く、照明の遅れが見られます。これは、多くのブロック(TNT、日没など)が変更され、最速のコンピューター(またはMac上のJava)を実行していない場合に特に当てはまります。 私の3Dグラフィックス照明についてのまだ限られた理解から、Minecraftのような世界は最大の問題ではないはずです。どのように問題に取り組みますか? ボクセルの世界での照明の基本的な要件は 単一フレームで発生する可能性があるほど速く更新します。グラフィックデバイスでライティングを行い、変更されたライト情報をメインRAMにダウンロードできる場合があります。 ライト情報はメインゲームロジックですぐに利用できる必要があるため、グラフィックデバイスに完全に基づいているわけではありません。 ライトの更新はチャンクに対してローカルであるか、他の制限がある必要があるため、サイズが非常に大きい可能性のある世界全体を再ライトする必要はありません。 主なアイデアは、ライトの更新を高速にすることです。必ずしもより美しくする必要はありません。一般的なライトレンダリングのパフォーマンスを向上させるために、SSAOを簡単に追加することができます。
10 opengl  maps  lighting 

1
「8ビットグラフィックス」の外観を実現するにはどうすればよいですか?
私はゲーム開発だけでなく、強力なプログラミングのバックグラウンドを持っています。私は高校でいくつかのピンポンとヘビだけを作り、大学でいくつかのOpenGLを作りました。 自分でゲームエンジンを作りたい。単純な2Dゲームエンジンだけを空想することはありません。しかし、私はちょっと古い学校で、レトロな感じなので。グラフィックを古い8ビットゲーム(メガマン、コントラ、スーパーマリオなど)のように見せたいです。 では、当時の古いゲームはどのようにして作られたのでしょうか?私は最も単純なアプローチを求めています。新しいエンジンのようにアセット(画像)も使用していたのでしょうか?OpenGLを使用してこの種のレンダリングをどのように実現しますか? 覚えておいてください。最も簡単なソリューション。それが当時どのように作られたのか、そしてそれをどのように複製できるのか知りたいです。OpenGLでなくてもかまいません。ウィンドウキャンバスに描けます。基本的に一から作りたいです。

2
レンダリング前のオブジェクトの並べ替え
私はシーングラフを実装しようとしています。出会ったすべての記事で、オブジェクトの並べ替えについて話しています。たとえば、オブジェクトを「マテリアル」で並べ替えます。さて、私が座ってそれを実装し始めるまで、これは当然のことと思っていました。しかし、今私はソートが実際に何を変えるのかと思っていますか? 私のエンジンには、UBOのマネージャーがいます。プログラム間で共有されるデータを保存するためにそれらを使用します。現時点では、時間、カメラ、投影行列、ライトのみが関係します(影響するライトの管理については心配していません) ATMを対象としています)。 ここで、各モデルについて、モデルをワールドマトリックスユニフォームに変更する必要があります。並べ替えによって変更されることはありません。それで、このマトリックスを変更することから、各オブジェクトのマテリアルを設定することへのジャンプは悪いのでしょうか? パイプラインで何かを変更するたびにフラッシュする必要があり、それがパフォーマンスの問題を引き起こす可能性があることをどこかで読んだことを漠然と覚えています。しかし、描画を呼び出すたびに、とにかくモデルをワールドマトリックスに設定しているので、これについて心配することにはどのような意味がありますか? ところで、ユニフォームを変更してglBufferSubDataを呼び出す方がコストが高い(または低い)かどうかについての情報があります。

2
2Dゲームと最新のOpenGL
事前概念 わかりました、それで私がこれまでに集めたのはこれです: 固定パイプラインを使用しない(非推奨または非推奨) vbosは「オブジェクトモデル」を格納します(n頂点データ、ほとんど) vaosは、データがどのように配置されるかを記述し、描画呼び出しが各vboのどの部分がどの種類の頂点情報に対応するかを認識します(1つのvaoは複数のvboを参照でき、その逆は少し難しい) 各描画呼び出しは、シェーダーに頂点データも送信します 3Dの見方(オプション) これらの情報があれば、3Dの複雑なオブジェクトの描画が最新のOpenGLで非常に優れていることがわかります。基本的に、(おそらくBlenderまたは他の同様のソフトウェアからの)オブジェクトモデルの束をローカル座標を持つVBOにロードし、次に、オブジェクトの各インスタンスに異なるシェーダーパラメーター(オフセット)を指定して、ワールドスペースに描画します。 問題/質問 ただし、2Dでは問題と優先順位はまったく異なります。それほど複雑なオブジェクトを描画する必要はありません。複雑な投影行列は必要ありません。シェーダーははるかに単純です。 最新のOpenGLで頻繁に(実際には頻繁に、基本的にすべてのフレームで)変化するジオメトリを描画するための最良の方法は何でしょうか? 次の段落では、問題のいくつかの考え(円と四角形の問題)を見ることができます。これにより、興味のある変更の種類をより明確に識別できます。 私の試み(オプション) そこで、基本的な2Dジオメトリを画面に描画する方法を考え始めました。 正方形:[(1, 0), (1, 1), (0, 1), (0, 0)]ローカル空間で正方形のジオメトリのVBOを読み込み、シェーダーに正方形の実際の幅と世界座標および色情報を提供します 涼しく、簡単に見えます。円に移動しましょう: 円:三角ファン...ええ。どのくらいの精度(頂点の数)?小さな円の精度は小さく、バグの円の精度は高くなければなりません。明らかに1 VBOをロードしても、すべてのケースに対応できるわけではありません。円のサイズが大きくなるために精度を上げる必要がある場合はどうなりますか? かっこいい。少し簡単な長方形に移動しましょう。 長方形:ええ。「一般的な長方形のジオメトリ」はありません。幅と高さの比率があればそれだけですが、サイズが変化すると、各長方形はおそらく異なります。 ご覧のとおり、物事はそこから下り坂になります。特に複雑なポリゴンなどではそうです。 コードポリシーなし:P アイデアの概要が必要なだけで、コードは必要ありません。特にCまたはC ++コードは必要ありません。「この頂点データでVBOを作成し、それをバインドする...」のように言ってください。
10 opengl  2d  vbo  vao 

2
シェーダーのユニフォームを更新する最良の方法は何ですか?
シェーダーのマトリックスを最新の状態に保つための最も一般的な方法は何ですか?なぜですか? たとえば、現時点ではShader、GLSLシェーダープログラムとユニフォームのハンドルを格納するクラスがあります。カメラを動かすたびに、新しいビューマトリックスをシェーダーに渡す必要があります。次に、すべての異なるワールドオブジェクトのモデルマトリックスをシェーダーに渡す必要があります。 そのシェーダーオブジェクトにアクセスしないと何もできないので、これは私を厳しく制限します。 ShaderManagerすべてのアクティブなシェーダーを保持する責任があるシングルトンクラスを作成することを考えました。その後、どこからでもアクセスできます。ワールドオブジェクトはShaderManager、目的のマトリックスを通知する必要があるだけで、どのシェーダーがアクティブであるかを知る必要はありませんが、これが最善の方法であるとは限らず、おそらくいくつかの問題があります。このアプローチを取ることから発生します。
10 opengl  shaders  glsl 

1
背景のピクセルの色を反転させる方法
私は、JavaとjMonkeyEngineを使用してゲームとマップエディターを書いています。マップエディターでは、ワイヤーフレームの球でブラシを作成しました。私の問題は、どこでも見えるようにしたいので、このブラシの「背後」にあるピクセルの色を反転させたいです。フラグメントシェーダー(GLSL)でそれを実行したかったのですが、このピクセルの色を取得する方法がわかりません。

1
opengl 3とopengl 4の違い
ゲームプログラミングを始めたばかりで、openglの学習を開始したいと思っています。私は非常に優れたチュートリアルを最初から見つけてopengl 3を使い始めましたが、openGL 3とopenGl 4の間に大きな違いがあるかどうか疑問に思っています。 openGL 3からopenGL 4に移動できますか?
10 opengl 

1
OpenGLのどのc / c ++モデルアニメーションライブラリ[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 私はゲーム開発にかなり慣れていないので、以前xnaをいじって、OpenGLとcを今すぐ学習しています。どのc / c ++ベースのモデルアニメーションライブラリがあり、どれをお勧めしますか?私はまだ特定のモデル形式を考えていませんが、おそらくBlenderのような無料のモデリングツールでサポートされている形式でしょう。
10 opengl  c++  models  c 

5
Vector3で演算子 '> ='を使用できないのはなぜですか?
私は私がように参照する2つの位置の間を移動するための四角形を取得しようとしている_positionAとします_positionB。どちらもタイプVector3です。長方形はうまく動きます。ただし、到達_positionBしても、本来のように反対方向に移動することはありません。 コードをもう一度見てみました。オブジェクトが移動ifすると、コード内のステートメントは、rectsの位置がに等しいフレームを逃したという結論に達しました_positionB。rectsの位置がより大きいか等しい 場合は、コードを変更して方向を逆にすることにしました_positionB。私のコードは長すぎないので、以下に表示します。 using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

1
OpenGLでGPUベースの動的ジオメトリLODを実装するにはどうすればよいですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 昨年休業。 ゲームのパフォーマンスを向上させるためにLODを実装しようとしています。とてもいいチュートリアルを見つけました。 私が理解していると思う基本的な概念は、カメラからオブジェクトまでの距離を取得し、適切なLODレベルを確認してから、「適切な量のインスタンス」でオブジェクトをレンダリングすることです。 それをどのように実装しますか?提供されているサンプルコードは私にとって謎です... いくつかの質問: これはLODを実装する良い方法ですか? 誰かが私に詳細、私がそれを実装する方法、クエリなどを説明してくれますか? すべてのオブジェクトをレンダリングしています GL11.glDrawElements(GL11.GL_TRIANGLES, model.getRawModel().getVertexCount(), GL11.GL_UNSIGNED_INT, 0); コード例ではを使用していGL_POINTSます。でも実装できますGL_TRIANGLESか?
9 opengl  java 

3
OpenGLでビデオファイルを再生するにはどうすればよいですか?
ムービーファイルをロードしてOpenGLアプリケーションで再生できるライブラリはありますか?または、誰かがうそをついているコードサンプルだけですか?それが違いを生むなら、私もGLUTを使用しています。私の映画は現在AVI形式ですが、ファイル形式は問題ではないと思います。
9 opengl  video 

3
2Dレンダリングにフル解像度の深度バッファーを使用する
私は正投影を使用して2Dエンジンの前面から背面へのレンダラーに取り組んでいます。オーバードローを避けるために深度バッファーを使用したい。16ビットの深度バッファーがあり、Z = 100でZ = 0を見ているカメラ、zNearが1、zFarが1000です。レンダリングされた各スプライトは、Z座標を次第に離れた値に設定し、深度テストでレンダリングをスキップできるようにします下にあるものは何でも。 ただし、Z位置がZバッファ値で終わる方法が非線形であることは知っています。私は、16ビットの深度バッファのフル解像度を利用したいと考えています。つまり、65536の一意の値を許可しています。したがって、レンダリングされるすべてのスプライトについて、Z位置を次の位置にインクリメントして、次の一意の深度バッファー値に関連付けます。 言い換えると、描画されるスプライトのインクリメントインデックス(0、1、2、3 ...)を各スプライトの適切なZ位置に変更して、一意の深度バッファー値を設定します。この背後にある数学についてはわかりません。これを行うための計算は何ですか? 注:私はWebGL(基本的にはOpenGL ES 2)で作業しており、幅広いハードウェアをサポートする必要があるため、gl_FragDepthなどの拡張機能でこれが簡単になる場合もありますが、互換性の理由で使用できません。

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