問題タブ [glkit]

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.

0 投票する
1 に答える
266 参照

ios - タッチによく反応する

私は音楽アプリに取り組んでいるので、待ち時間を実際に承認することはできません。

私は自分のタッチを処理するために最愛のtouchsBegan/Moved/Endedを使用しています。すべてが順調に進んでおり、(AudioUnitを使用して)トーンを合成し、(GLKitを使用して)指の下でグローを表示することができました。同時にヒットするノート/タッチが4〜7未満であれば、すべて正常に機能します。 、それからそれはおかしくなり、アプリを動かなくなってしまいます。

私は(GLKitインターフェースとシンセエンジン用に作成したインターフェースを使用して)多くの作業を行っているため、それを修正する方法が必要であることを理解しました。

私のコードは次のように構築されています:

touchesEndedでまったく逆のことをします。

それで、それをより良く機能させるために、GLKitのものにGCDを使用して、非同期で発生するようにしました。それは機能しましたが、アレイにないためにグローが画面に表示されたままになることがありました。 touchesEndedはそれを削除しようとしました。

だからそれはうまくいきませんでした、そして誰かが私を助けることができれば私はちょっと無知です、私は感謝するでしょう。

0 投票する
1 に答える
1038 参照

ios - GLKitは2つのテクスチャをブレンドします

OGLES1.1を変換しようとしています。GLKitへのコード。GLKitは、テクスチャスロットのペアを提供します。

  1. texture2d0
  2. texture2d1

各テクスチャにはenvモードがあります。

  1. GLKTextureEnvModeReplace、
  2. GLKTextureEnvModeModulate、
  3. GLKTextureEnvModeDecal

通常、texture2d1は空白のままにして、texture2d0を設定するだけです。私は、Appleのドキュメントを読んだことから、2d1はテクスチャのブレンド/結合/変更用であると想定しました。GLKitは「単に」シェーダーの上に配置されているため、各シェーダーには1対のテクスチャスロットが標準です。「着信」スロットは既にマテリアル上にあるものを表し、「変更」スロットはシェーダーが持つものを表します。マテリアルを変更するためのパラメータとして使用します。

しかし、それはうまくいかないようです。

私は試した:

...そして私が得たのは黒い非テクスチャーだけでした。0に配置された(1には何もない)どちらのテクスチャも正常に機能します。2番目のテクスチャはアルファから白にシェーディングされ、最初のテクスチャはすべて不透明ですが、かなりリッチなパレットがあります。

私が本当にやりたいのは、動的に生成/更新されたブレンドを効率的に適用し始めることです。例えば:

  1. ベーステクスチャをロードする
  2. 2番目のテクスチャをロードします
  3. それらの間でブレンドするブレンドマスクをロードします
  4. ...ブレンドマスクをフレームごとに更新します。最初の2つのテクスチャを再アップロードする必要はありません

注意:GLKitを捨てて、代わりにカスタムシェーダーを作成するつもりはありません。GLKitがどのように機能するかを理解したいのですが、見た目からすると、シェーダーをたくさん書いている場合よりも、このような単純なものの方がはるかに簡単に保守できるはずです。

0 投票する
1 に答える
2199 参照

iphone - OpenGL ES 2.0 GLKit GL_LINE_SMOOTH エラー

glDrawArrays の描画を使用して GL_LINE_STRIP を描画しており、それらをスムーズにしたいと考えています。glEnable(GL_LINE_SMOOTH) と glHint(GL_LINE_SMOOTH_HINT, GL_NICEST) を使用することをお勧めするいくつかの質問をここで見ましたが、そうするとエラーが発生します。これが私のコードです:

これらの行のいずれか (または両方) のコメントを外すと、GL ERROR が発生します。何かご意見は?

0 投票する
2 に答える
1816 参照

objective-c - GLKBaseEffect prepareToDraw GL エラー: 0x0501

そのため、いくつかの OpenglES を使用して iphone 開発を行っていますが、エフェクトで prepareToDraw を呼び出すと、かなり奇妙なエラーが発生します。簡単に言えば、私のプログラムはサイコロを振ることをシミュレートしています (objective-c と opengl を学ぼうとしています)。プログラムはほとんどの部分で正常に動作します。アプリでプログラムしたすべてのことを使用できます (物理学のバグがありますが、後で修正できません)。この問題は、OpenGL を含むパーツを使用した後に発生します。

プログラムには、OpenGL を使用している画面に到達するために通過する必要がある 2 つのメニューが含まれています。アプリの OpenGL 部分を使用して前のメニューに戻り、もう一度 OpenGL 部分に戻ってみると、 GL ERROR: 0x0501 と表示されます。私のエフェクトからprepareToDrawメソッドが原因であると絞り込みました。それに関する他の奇妙な部分は、戻ってから再び進むと、OpenGLが再び機能し、OpenGL部分に入るたびに機能して壊れるために何度も繰り返すことができることです。

私は似たような問題を探していましたが、2 のべき乗テクスチャではないテクスチャの読み込みに関係するたびに、まだテクスチャを使用しておらず、色付きの頂点だけであるため、役に立ちません。

2 つのコード ファイルを問題のある場所に貼り付けました

Dice.m: http://pastebin.com/ze1DEEzs draw メソッドを使用すると、問題のある場所 (prepareToDraw メソッド) がプリントアウトで絞り込まれていることがわかります。(308行目)

RollViewController.m: http://pastebin.com/VycwAh3R このファイルは、エフェクトやコンテキストなどをセットアップする場所なので、OpenGL を 2 回実行するたびに prepareToDraw メソッドを台無しにするために、ここで何か間違ったことをしているに違いありませんプログラムの一部。コンテキストと効果に関係するある種のリソースを手放さないことに関係があると感じていますが、コンテキストと効果の削除については何も見つかりません(おそらく必要がないためですが、よくわかりません)。

同じ問題に遭遇し、私の質問に答えることができる誰かがそこにいることを願っています.

ありがとう

0 投票する
1 に答える
2650 参照

ios - ストーリーボードを使用してGLKViewの初期サイズを設定します

GLKViewの初期サイズを設定しようとしています(基本的に、タブバーが存在するにもかかわらず、画面のサイズと正確に一致させたい)。ストーリーボードを使用しているため、GLKViewはGLKViewController initメソッド内で自動的に作成されます(確かではありませんが、実際には文書化されていませんが、そう思います)。GLKViewControllerには、viewDidLoadメソッドしかありません。これは次のとおりです。

したがって、ストーリーボードを使用しない場合は、次のように記述します。

しかし、ストーリーボードを使用する場合、これを行う機会はありません。

既存のビューのフレームを変更し、新しいGLKViewを作成してから、それをviewController.viewに割り当てようとしましたが、結果はありません。

別の方法などでGLKViewのサイズを設定または変更することは可能ですか?

0 投票する
2 に答える
1847 参照

opengl - OpenGL シーン座標からスクリーン座標へ

OpenGL シーン座標をスクリーン座標に変換するのに問題があります。

ndcを取得するには、座標にモデルビューマトリックスを掛けてから投影マトリックスを掛ける必要があると思いました。しかし、私は奇妙な座標を取得しています。

ここに私のコードがあります

何か案が ?

0 投票する
2 に答える
391 参照

objective-c - 単純なキューブでVBOを表示できない、バッファの問題のようです

raywenderlich.comでこのOpenGLおよびGLKitチュートリアルを変更しようとしていますが、頂点ごとの色情報を使用せず、サーフェス法線を使用して、wavefrontobjファイルから立方体をレンダリングしようとしています。しかし、レンダリングされるものは立方体のようには見えません。

objファイルを解析するために、objを通過し、頂点バッファー、インデックスバッファー、オブジェクト内の面の数、および変換行列の4つを含む構造体(Drawable)に情報を保存するメソッド(createDrawable)があります。物体。(ここにヘッダー.mファイルおよび.objファイルがあります。)

レンダリングには、オブジェクトのバッファーをバインドし、それらへのポインターを設定してから、glDrawElements(..)を使用してレンダリングする別のメソッド(renderDrawable)を使用しています。

バッファ(ここに示されているcreateDrawableと.mファイルのrenderDrawableの一部)で何か問題が発生していると思いますが、それが何であるかがわかりません。

0 投票する
1 に答える
288 参照

ios - GLKTextureInfo でバイナリ イメージ データにアクセスすることは可能ですか?

生の画像データは GLKTextureInfo または関連オブジェクトで利用できますか?

そのような生データの画像バッファに基づいて GLKit でテクスチャを作成することは可能ですか? 非 ES OpenGL のように、glTexImage2D() を使用しますか?

0 投票する
2 に答える
4257 参照

ios - GLKitのGLKBaseEffectとカスタムシェーダー

私は自分が抱えているこの問題を研究してきましたが、それを解決するのに十分な理解が得られていないようです。:P

基本的に、私はしばらくの間iPhoneプロジェクトに取り組んでおり、最新のフレームワークとターゲット5.1をすべて使用する余裕があります。そのため、私はGLKitとGLKBaseEffectを使用してきましたが、これらは私にとっては問題なく機能しています。独自のシェーダーを作成するのではなく、GLKBaseEffectを使用して始めた理由は、glslをよく知らないためです。ただし、要件はより正確になり、基本効果はもはやそれをカットしていないようです。

私はすでにベースエフェクトを使用してすべての変換を行っているので、ベースエフェクトをそのまま維持できればいいのですが、それが理にかなっている場合は、glslタイプのシェーダーを上に追加します。

私の古いアプローチは次のようになります(これは、すべてのオブジェクトをレンダリングするループ内にあり、オブジェクトには、変換、メッシュ、およびテクスチャやマテリアルなど、この問題にとってそれほど重要ではないものが含まれています)

ここでは、オブジェクトをフェッチしてオブジェクトをレンダリングおよび変換(つまり、変換、回転、スケーリング)してから、レンダリングします。レンダリング自体がオブジェクトのメッシュをフェッチし、バッファをバインドしてレンダリングします。

ここまでは順調ですね。

ただし、呼び出し中に、オブジェクトに、より特殊なシェーダーコードを追加する[obj render];ようなことも実行させたいと思います。glUseProgram(someProgram);

頂点シェーダーにベースエフェクトを使用しようとしていて、フラグメントシェーダーに「通常の」シェーダーを使用したいと主張する人もいるかもしれません。少なくともそれが私がやりたいと思うことです。

私はいくつかのことを試みてきました。

フラグメントシェーダーとその上に作成しようとしましたがglUseProgram、セットアップとコンパイルの際に1つの頂点と1つのフラグメントシェーダーが必要であると表示されました。また、空の頂点シェーダーを作成しようとしましたが、うまくいきませんでした。それで何が起こるかわかりませんが、基本効果を無効にしていると思います。

最終的には、基本エフェクトを破棄して、自分のシェーダーを作成するのがおそらく最善であると考えています。窓の外で大変な作業をしているような気がするので、どれだけ節約できるかを知りたかったのです。

シェーダーについての私の理解が私に最も問題を与える部分であることを私は理解しているので、その事実を我慢してください。

0 投票する
1 に答える
316 参照

ios - 正射影を使って正方形を描こうとしてうまくいかない

私はこのコードを iPhone で実行しており、行列用に Apple が提供する GLKit を使用しています。iPhone では灰色の画面しか表示されませんが、隅に正方形の描画があるはずですが、表示されません。

私が行ったことに問題はなく、OpenGL の getError を呼び出すと GL_NO_ERROR が返されます。

私の情報源: