問題タブ [nsopenglview]

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 に答える
5615 参照

objective-c - OpenGL 3.2 と NSOpenGLView

NSOpenGLView のカスタム実装でコア プロファイルを作成するにはどうすればよいですか? どのメソッドをオーバーライドし、そこにどのコードを配置する必要がありますか?

これまでのところ、私はこのコードを持っています:

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

macos - Mac で GLSL の例が機能しない

Mac で GLSL の例を作成しようとしています。頂点ごとに 1 つのカラー アトリビュートを設定しようとしています。ただし、プログラムを実行すると、紫色の画面が表示されます (紫色は glClearColor によるものです)。関連するコード スニペットを投稿します。

そして、読み込みシェーディング コード:

そして最後にシェーダー:

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

objective-c - NSScrollView の NSOpenGLView?

NSOpenGLView のズーム方法があります。画像を拡大すると、NSOpenGLView のフレーム サイズ、ビュー ポートなどが拡大されます。NSOpenGLView が縮小されている (フレーム サイズ、ビュー ポートなどが縮小されている) 場合も同じことが起こります。したがって、NSOpenGLViewがウィンドウよりも大きくなるように画像を拡大すると、スクロールバーが表示されるはずです。そこで、NSOpenGLView を NSScrollView に配置することが私の解決策になると考えました。しかし、そうではありません。うまくいきません。どうすればそれができますか?

0 投票する
3 に答える
16725 参照

cocoa - OpenGL glGenBuffers() を理解するのを手伝ってください

これが取り引きです: コードを のままにしておくとglGenBuffers(1, vertexBuffers)、コードはコンパイルされて動作します。でも、サイズは22なのでいいなと思いました。vertexBuffers

何か不足していますか?

以下のコード:

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

macos - OpenGLキューブが表示されていませんが、近くの飛行機と遠くの飛行機があるのでしょうか?

手動の遠近法変換を実行しようとした後、キューブを表示できません。私のコードは以下のとおりです。私はそれがおそらく私の近距離と遠距離の飛行機の数であるのではないかと疑っています。

問題は何でしょうか?ああ、そしてシェーダーも:


OK、コードのセクションを次のように変更しました。

私はこれを手に入れます:

プログラム結果

台形のベースのように、バックエンド(緑)は遠くでは小さく見え、大きくは見えませんか?

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

cocoa - Cocoa (Mac) を使用して 2 つの NSOpenGLViews を描画する方法

XCode を使用して Cocoa アプリで 2 つの NSOpenGLViews を描画したいのですが、各ビューで異なるものを描画します。NSOpenGLContext とメソッド SetView を使用する必要があると思います。しかし、私はこれを正確に使用する方法を見つけていません。この呼び出しをどこで使用する必要がありますか? それを行う正しい方法はどれですか?

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

macos - NSOpenglContext リソース、不適切なレンダリング

NSOpenGLContext を機能させるのに問題があります。すべてのopenglのもの、リソース、vbosなどを処理する静的オブジェクト(3Dエンジン)があります..

ココア バージョンの場合、次のような NSOpenGLContext を作成します。

エンジンの初期化後、NSView を作成します。NSView の作成後、prepareOpenGL 関数で、エンジンから NSOpenGLContext メンバーを現在の NSOpenGLContext に設定しました。

次に、NSView の関数 lockFocus で、コンテキストのビューを設定します。

今、描画するときに描画するリソースを取得できません。バッファ アーティファクトがたくさんあるだけです。

共有オプションを使用して、NSView の 2 つ目のコンテキストを作成しようとしましたが、同じ結果になりました。

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

c++ - glGetShaderInfoLogからエラーメッセージを取得できません

単一のフラグメントシェーダーで構成される単純なOpenGL3.2プログラムを作成しようとしていますが、実際にシェーダーをコンパイルできないようです。シェーダーの構文が正しいことはかなり確信していますが、正しくない場合でも、を使用してエラーメッセージを取得することはできませんglGetShaderInfoLog

私はこれが実際に行われていることを示す短いプログラムを開発しました。

これにより、次のメッセージが生成されます。

シェーダーフラグメントシェーダーのコンパイルエラー:

getShaderiv問題は、値を取得するための呼び出しがGL_INFO_LOG_LENGTH毎回0を返すことであると思われるため、空の文字列を割り当てます。この値を100にハードコーディングしようとしましたが、それでも。から何も受け取りませんgetShaderInfoLog

ここでの私の懸念は、シェーダーを修正することではなく(間違っている場合は自分で修正できます)、デバッグ情報を取得することです。Shader Makerを使用してシェーダーを簡単に開発したので、これが可能であり、非常に詳細なデバッグメッセージを取得できることを知っています。例えば:

ERROR: 0:11: 'undefined_variable' : syntax error syntax error

Shader Markerが内部に独自の検証ツールを持っていない限り、私が使用しようとしているのと同じ方法を使用する必要があると確信しています。インターネット上で、同じ方法でシェーダーのエラーメッセージを取得する例をいくつか見てきたので、正しく実行していると確信しています。

現在、この問題を説明できる可能性のあるコンパイル時の警告が表示されます。

#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality.

全文検索を行った後、呼び出した場所が見つからないため、このヘッダーがクラス#include <OpenGL/gl.h>の1つに含まれていると推測されます。NSOpenGL*私はこの短いプログラムで削除された機能を使用していないことをかなり確信しています。この問題はGoogleで約5ヒットしかないのですが、とにかくこれについて言及したほうがいいと思いました。

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

macos - バックグラウンド スレッドで OpenGL をレンダリングし、Mac OSX の Cocoa コントロールで引き続き動作

OpenGL ベースの mac osx コントロールに取り組んでいます。現在、NSOpenGLView と CVDisplayLink を使用して、バックグラウンド スレッドでレンダリングを調整しています。これはうまく機能しますが、この OpenGL ベースのコントロールの上に Cocoa コントロールを表示できるようにする必要があります。

Cocoa コントロールをボーダレス ウィンドウに配置することでこれを実行できることはわかっていますが、それは私のユーザーにとってあまり良いワークフローとは思えません。

別の方法として、ビューをレイヤーでサポートすることもできますが、それが機能するようになりましたが、メイン スレッドで OpenGL コンテンツをレンダリングするのは好きではありません。フレーム レートが低下すると、メイン スレッドがブロックされることがあります。

両方の長所を活かす方法を示すサンプルはありますか?

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

cocoa - テクスチャへの OpenGL レンダリング

これが以前に尋ねられたことは知っていますが(検索しました)、これは違うと約束します。

Mac OS X Mountain Lion 用のアプリを作成していますが、ブルーム効果を少し追加する必要があります。シーン全体を画面サイズのテクスチャにレンダリングし、テクスチャのサイズを小さくして、ピクセル バッファに渡し、クワッドのテクスチャとして使用する必要があります。

通常のテクニックのいくつかが機能していないように見えるので、もう一度質問します。#versionlayout、またはoutはコンパイルされないため、フラグメント シェーダーでは使用できません。通常どおり使用するgl_FragColorと、レンダリングしようとしているシーンではなく、アプリの背後に画面のランダムな部分が表示されます。ドキュメントには、そのようなことについては何も書かれていません。

では、基本的に、OpenGL の Mac 実装で適切にテクスチャをレンダリングするにはどうすればよいでしょうか? これを行うには拡張機能を使用する必要がありますか?

ここからコードを使用します