問題タブ [vertex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - OpenGL シェーディング言語 さまざまな種類の変数 (修飾子)
私はOpenGLを使ってプログラムを書いています。最近、OpenGL Shading Language を学び始めました。私は初心者です。そのため、回答に詳細を記入してください。
私の質問は次のとおりです。
- GLSL のさまざまなタイプの変数 (修飾子) は何ですか?
- それらは何に使用されますか?
- それらは互いにどう違うのですか?
私は、頂点間で補間されるために頂点シェーダーからフラグメントシェーダーに渡される「可変」変数にのみ精通しています。それ以外は、私は何も知りません。
opengl - OpenGL 頂点バッファ オブジェクト、衝突検出などの他の用途のために頂点データにアクセスできますか?
私は現在、Superbible 5th edition に付属している GLTools クラスを使用しています。私は GLTriangleBatch クラスを探していますが、次のコードがあります:
私が理解していることから、コードはポインター pVerts、pNorms、pTexCoords、pIndexes の配列を渡し、それらを頂点バッファー オブジェクトの配列である頂点配列オブジェクトに格納します。これらは GPU のメモリに格納されます。その後、元のポインタは削除されます。
pVert が指す配列に保持されていた頂点位置にアクセスすることに興味があります。
今、私の質問は衝突検出を中心に展開しています。GLTriangleBatch のすべての頂点の配列にアクセスできるようにしたいと考えています。vertexBufferObject
何らかの getter メソッドを使用して、後でそれらを取得できますか? pVerts ポインターを保持し、代わりに getter メソッドを使用するのが最善でしょうか? 将来的にGJK衝突検出アルゴリズムを実装したいので、パフォーマンスの面で考えています...
c++ - OpenGLで頂点を処理するための最良のテクニックは?C ++
Quake用のマップレンダラーを実装しています。現在、頂点の配列を実行して、一度に1つずつ送信しています。頂点配列を使用することで、頂点をバッチで送信することでレンダリングプロセスを大幅に高速化できると言われました。これで、ディスプレイリスト、最後にVBOまたは頂点バッファオブジェクトを確認しました。VBOは、クライアント/サーバー通信に関して大きな利点について言及しています。サーバーではなくクライアントを開発するだけの場合でも、VBOは私が行っていることに適用できますか?
迅速な頂点処理のために現在OpenGLスペクトルで使用されているゲームは何ですか?
c# - 描画されている頂点のテクスチャや色が表示されない
OpenTKには次のコードがあります。
頂点とuvに与えられたデータが正しく(少なくともXNAレンダラーでは正常に機能する)、画面に白いポリゴンが正しく描画されていることがわかります。
上記のコードから、squareColoursにランダムなバイト数を入力しているので(squareColorsがランダムなバイトで埋められていることを確認しました)、さまざまな色が表示されるはずですが、そうではありません。頂点はすべて白で描かれています。
また、(GL.BindTextureを介して)テクスチャをバインドしようとしましたが、失敗しました。
これが機能しない理由はありますか?
編集:色を有効にするために追加したとき(この投稿の最初のコメントを参照)、アプリがクラッシュし、次の出力が表示されました:
スタックトレース:
at(ラッパー管理からネイティブ)OpenTK.Graphics.ES11.GL/Core.DrawArrays(OpenTK.Graphics.ES11.All、int、int)at OpenTK.Graphics.ES11.GL.DrawArrays(OpenTK.Graphics.ES11。 All、int、int)[0x00000] in /Users/plasma/Source/iphone/monotouch/OpenGLES/OpenTK/Graphics/ES11.iPhone/GL.cs:1326 at Jabber.J3D.Shape.Draw_IOS()[0x00171] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/J3D/Shape_iOS.cs:136 at Jabber.J3D.Shape.Draw()[0x00000] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / MyCode / Engine /J3D/Shape.cs:255 at Jabber.J3D.PhysicShape.Draw()[0x00000] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/J3D/PhysicShape.cs:46 at Jabber.Scene.GameScene Jabberの/Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/Scene/GameScene.cs:299に.Draw()[0x0001d]。GameScreenManager.Screen.Draw()[0x0001f] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/GameScreenManager/Screen.cs:150 at ChicksnVixens.Screens.GameplayScreen.Draw()[0x00000] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / MyCode / ChicksnVixens / Screens / GameplayScreen.cs:481 at Jabber.GameScreenManager.ScreenManager.Draw()[0x00054] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / MyCode / Engine / GameScreenManager / ScreenManager.cs:92 at Jabber.BaseGame.Draw(Microsoft.Xna.Framework.GameTime)[0x0002c] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/Engine/BaseGame.cs:95 at ChicksnVixens.ChicksnVixensGame.Draw (Microsoft.Xna.Framework.GameTime)/Users/ahmedhakeem/Documents/Projects/JabberEngine2/MyCode/ChicksnVixens/ChicksnVixensGame.csの[0x00000]:414 at Microsoft.Xna.Framework.Game.DoDraw(Microsoft.Xna.Framework.GameTime)[0x0001e] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/ExEn/ExEnCommon/Game/GameCommon.cs:205 at Microsoft.Xna .Framework.ExEnEmTouchGameView.OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in /Users/ahmedhakeem/Documents/Projects/JabberEngine2/ExEn/ExEnEmTouch/ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0 /Users/plasma/Source/iphone/monotouch/OpenGLES/OpenTK/Platform/iPhoneOS/iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in / Users / plasma / Source / iphone / monotouch / shared / Foundation / NSAction.cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_GameTime)[0x0001e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnCommon / Game / GameCommon.cs:205 at Microsoft.Xna.Framework.ExEnEmTouchGameView.OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnEmTouch / ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0x000af] in / Users / plasma / Source / iphone / monotouch / OpenGLES / OpenTK / Platform / iPhoneOS / iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in /Users/plasma/Source/iphone/monotouch/shared/Foundation/NSAction.cs:45 at(wrapper runtime-invoke)object。 runtime_invoke_void_GameTime)[0x0001e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnCommon / Game / GameCommon.cs:205 at Microsoft.Xna.Framework.ExEnEmTouchGameView.OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnEmTouch / ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0x000af] in / Users / plasma / Source / iphone / monotouch / OpenGLES / OpenTK / Platform / iPhoneOS / iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in /Users/plasma/Source/iphone/monotouch/shared/Foundation/NSAction.cs:45 at(wrapper runtime-invoke)object。 runtime_invoke_void_OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnEmTouch / ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0x000af] in / Users / plasma /Source/iphone/monotouch/OpenGLES/OpenTK/Platform/iPhoneOS/iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in / Users / plasma / Source / iphone / monotouch / shared / Foundation / NSAction .cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_OnRenderFrame(OpenTK.FrameEventArgs)[0x0002e] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / ExEn / ExEnEmTouch / ExEnEmTouchGameView.cs:329 at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunIteration()[0x000af] in / Users / plasma /Source/iphone/monotouch/OpenGLES/OpenTK/Platform/iPhoneOS/iPhoneOSGameView.cs:592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in / Users / plasma / Source / iphone / monotouch / shared / Foundation / NSAction .cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in /Users/plasma/Source/iphone/monotouch/shared/Foundation/NSAction.cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_592 at MonoTouch.Foundation.NSActionDispatcher.Apply()[0x00000] in /Users/plasma/Source/iphone/monotouch/shared/Foundation/NSAction.cs:45 at(wrapper runtime-invoke)object.runtime_invoke_void_this _(object、intptr、intptr、intptr)at(wrapper managed-to-native)MonoTouch.UIKit.UIApplication.UIApplicationMain(int、string []、intptr、intptr)at MonoTouch.UIKit.UIApplication.Main(string [] 、string、string)[0x00038] in /Users/plasma/Source/iphone/monotouch/UIKit/UIApplication.cs:26 at ChicksnVixens.Program.Main(string [])[0x00000] in / Users / ahmedhakeem / Documents / Projects / JabberEngine2 / MyCode / ChicksnVixens / MonoTouch Program.cs:24 at(wrapper runtime-invoke).runtime_invoke_void_object(object、intptr、intptr、intptr)
ネイティブスタックトレース:
0 aChicks
0x000c5d00 mono_handle_native_sigsegv + 343 1 aChicks 0x0000fce0 mono_sigsegv_signal_handler + 322 2 libSystem.B.dylib 0x95fee48b _sigtramp + 43 3 ???
0xffffffff 0x0 + 4294967295 4
GLEngine
0x08645753 gleLLVMArrayFunc + 67 5
GLEngine
0x0863cba2 gleDrawArraysOrElements_ExecCore + 856 6 GLEngine
0x08642bbe glDrawArrays_IMM_Exec + 332 7 OpenGLES
0x0087c308 glDrawArrays 0x0c3c9b34 0x0 + 205298484 9 ???
0x0c3c9a9c 0x0 + 205298332 10 ???
0x0f0956c8 0x0 + 252270280 11 ???
0x0f0939c4 0x0 + 252262852 12 ???
0x0f09397c 0x0 + 252262780 13 ???
0x0ecdb286 0x0 + 248361606 14 ???
0x0c3c709a 0x0 + 205287578 15 ???
0x0f0927c4 0x0 + 252258244 16 ???
0x0c3c44cd 0x0 + 205276365 17 ???
0x0c3c3fed 0x0 + 205275117 18 ???
0x0c3c3e9a 0x0 + 205274778 19 ???
0x0c3c3d73 0x0 + 205274483 20 ???
0x0cc03166 0x0 + 213922150 21 ???
0x0cbfd578 0x0 + 213898616 22 ???
0x0cbfd130 0x0 + 213897520 23 ???
0x05e861e8 0x0 + 99115496 24 aChicks 0x0000fa9b mono_jit_runtime_invoke + 1332 25 aChicks
0x001d9f01 mono_runtime_invoke + 137 26 aChicks
0x0027e52b monotouch_trampoline + 2527 27 Foundation
0x00619749 NSFireTimer + 125 28 CoreFoundation
の0x014398c3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 19 29 CoreFoundationの0x0143ae74 __CFRunLoopDoTimer + 1220年30 CoreFoundation
の0x013972c9 __CFRunLoopRun + 1817年31 CoreFoundation
の0x01396840 CFRunLoopRunSpecific + 208 32 CoreFoundation
の0x01396761 CFRunLoopRunInMode + 97 33 GraphicsServices
0x028bc1c4 GSEventRunModal + 217 34 GraphicsServices
0x028bc289 GSEventRun + 115 35のUIKit 0x008abc93 UIApplicationMain + 1160 36 ???
0x05e84b8b 0x0 + 99109771 37 ???
0x05e83fb4 0x0 + 99106740 38 ???
0x05e83cee 0x0 + 99106030 39 ???
0x05e83e46は0x0 + 99106374 40 aChicks 0x0000fa9b mono_jit_runtime_invoke + 1332年41 aChicks
0x001d9f01 mono_runtime_invoke + 137 42 aChicks
0x001dc560 mono_runtime_exec_main + 669 43 aChicks
0x001db96e mono_runtime_run_main + 843 44 aChicks
0x0009cdd2 mono_jit_exec + 200 45 aChicks
0x00003362メイン+ 3838 46 aChicks
0x00002249 _start + 208 47 aChicks
0x00002178開始+ 40gdbからのデバッグ情報:
/tmp/mono-gdb-commands.ZEI8zH:1:ソースコマンドファイルのエラー:自分自身をデバッグできません
c# - 生成されたIcosphereのスパイクされた頂点
私はicosphereを生成するプログラムに取り組んできました。(地形の変形に使用される、面全体に均等に分散された頂点を持つ球)
私はほとんどすべてを行いました。球は生成され、細分化され、描画されます。私が遭遇している問題は、コードのどこかで、いくつかの頂点(12個の開始頂点)が半径だけでなく、半径の2倍に設定されていることです。
これが3つの画像で、ゼロ、1、2回のリファインメントパスでのicosphereを示しています。
http://i41.photobucket.com/albums/e262/cstgirllover/Cho/Ico0Refinement.png
http://i41.photobucket.com/albums/e262/cstgirllover/Cho/Ico1Refinement.png
http://i41.photobucket.com/albums/e262/cstgirllover/Cho/Ico2Refinement.png
これが二十面体を生成し、それを二十面体に分解するコードです。
これがTriXYZクラスで、三角形のデータを保持しています。
どんな助けでも大歓迎です。簡単なことだと思いますが、問題が見つからないようです。
3d - Google の 3D Warehouse からダウンロードしたメッシュのレンダリングがおかしい
このモデルは 3D Warehouse からダウンロードしました: http://sketchup.google.com/3dwarehouse/details?mid=a4295f6b93a3e11488961f28097fe890&prevstart=0
OgreAssImp ラッパーを使用して Open Asset Import ライブラリからインポートすると、メッシュで次の問題が発生します。
そのモデルは Collada メッシュから Ogre メッシュに変換され、画面にレンダリングされます。これはおそらく、正しく処理されていない頂点と関係があります。これらの 3D をどのように正しく処理する必要があるかについてはよくわかりません。そのため、上記の OgreAssImp ラッパーを使用しました。
私は、その問題を引き起こしている可能性のあるヒントを私に与えるために、よく訓練された誰かの目を頼っています. 他の 3DWH モデルの多くは、約 90% で正しく表示されます。また、ブレンダーでそのモデルをテストしたところ、うまく表示されました。
誰かが私にいくつかの手がかりを与えることができればいいですね:)事前に感謝します
-ジョニ
opengl-es - iOS OpenGl ES .objが単位立方体をロードした後、計算された面の法線を反転しました
モデルをMayaから非常に単純なiOSOpenGLESセットアップにエクスポートしてロードしようとしています。そのために、基本的に頂点と法線を取得し、それらを単純に含めるCヘッダーに計算するrubyobjパーサーを作成しました。単純に三角形分割された単位立方体の出力は、次の構造です。
Vertex3Dの定義は次のとおりです。
ここで、いくつかの頂点の動きをアニメートしたいので、頂点法線を再計算する必要があります。このために、接続されているすべての頂点インデックスをすべての頂点に追加しました。これが、connected_facesインデックス配列の目的です。
計算では、外積を使用してすべての面法線を単純に計算します。そのためには、Index3Dに格納されている3つの頂点を使用し、位置をロードし、最初の頂点を減算してベクトルを取得し、外積を計算するだけです。次に、この頂点に属するすべての外積を合計し、ベクトルを正規化します。これが私の最終的な頂点法線です。
私が遭遇している問題は、同じ面の法線を持つ2つの面が発生することです。たとえば、三角形の立方体には常に4つの三角形を分割する2つの三角形があり、その面は反対方向に法線になります。後で計算するためにそれらを追加すると、もちろんそれらの合計はヌルベクトルになります。これが発生するのは、2つの頂点の順序が正しくない場合があるためです。つまり、AをBに置き換える必要がありますが、どちらを反転する必要があるのかわかりません。
法線がどちらの方向に進むか、そしてAxBとBxAのどちらを計算するかを推定する数学的な方法はありますか?Mayaで法線を再確認しましたが、ここでは完璧です。
編集:私は今、接続された面を注文しましたが、これは問題なく機能します。私は次のように法線を計算しています:
しかし、三角形分割によって、まったく同じ方向を指す2つの法線が存在することがあるという問題があります。これは、期待される{0.33f、0.33f、0.33f}頂点法線にはなりません。それは正しい動作ですか、それともそれを計算する他の方法はありますか?
ご助力ありがとうございます!
c - スプライトにはどのような頂点を作成すればよいですか?
OpenGL と C を使用して 2D レンダリング エンジンを作成しています。VBO と非即時モード レンダリングに使用する方法について学習しています。私はから読んでいます:http://www.opengl.org/wiki/Vertex_Buffer_Object
チュートリアルでは、次のことを提案しています。
法線値は必要ありません。また、1 つの頂点に対して 3 つのテクスチャ座標が存在する方法や理由がわかりません。
必要なのは Vertex (XYZ) と 1 つの Texcoord (s0, t0 <-- まだ意味がわからない) だけだと思います。
iphone - OpenGL ES 2.0 - 頂点シェーダーで属性が見つからない
私はこれに対する答えをしばらく探しましたが、あまり運がありません。私がやろうとしているのは、通常のデータを頂点シェーダーに渡すことだけです。位置は正しく渡されますが、シェーダーをロードしようとすると「通常の属性が見つかりません」というエラーが表示されます。
私の ATTRIB 値は列挙型です。
Iphone 開発用に OpenGL ES 2.0 でキューブを作成しました。
私の Shader.vsh は次のようになります。
drawframe の属性値を更新する部分は次のようになります。
そして、LoadShader 関数でこれらをバインドする部分は次のようになります。
繰り返しますが、位置は機能します。しかし、「普通」は見つかりません。何か案は?
shader - OpenGL ES 2.0 with iPhone: GL_POINT_SMOOTH draws squares with ES 2.0 but works in ES 1.0
I'm trying to draw circles by using a Vertex Buffer Object to draw points with GL_POINT_SMOOTH enabled in OpenGL ES 2.0 on iPhone.
I've used the following ES 1.0 rendering code to draw circles successfully on iPhone 4:
I'm now trying to achieve the same effect using a set-up VBO followed by this ES 2.0 rendering code:
However the output vertices are very clearly square, not circular.
I've tried reducing the 'glEnable' and related calls in the above to emulate the first, working version but no visible change in output occurs; the shapes are still square. I've also tried replacing the 'glDrawElements' call with:
..but again there's no change.
The point size is set in the vertex shader, and the shader is successfully compiled and run:
Does anyone know why circles aren't drawn with the glDrawElements VBO version?