問題タブ [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.
objective-c - OpenGL 3.2 と NSOpenGLView
NSOpenGLView のカスタム実装でコア プロファイルを作成するにはどうすればよいですか? どのメソッドをオーバーライドし、そこにどのコードを配置する必要がありますか?
これまでのところ、私はこのコードを持っています:
macos - Mac で GLSL の例が機能しない
Mac で GLSL の例を作成しようとしています。頂点ごとに 1 つのカラー アトリビュートを設定しようとしています。ただし、プログラムを実行すると、紫色の画面が表示されます (紫色は glClearColor によるものです)。関連するコード スニペットを投稿します。
そして、読み込みシェーディング コード:
そして最後にシェーダー:
と
objective-c - NSScrollView の NSOpenGLView?
NSOpenGLView のズーム方法があります。画像を拡大すると、NSOpenGLView のフレーム サイズ、ビュー ポートなどが拡大されます。NSOpenGLView が縮小されている (フレーム サイズ、ビュー ポートなどが縮小されている) 場合も同じことが起こります。したがって、NSOpenGLViewがウィンドウよりも大きくなるように画像を拡大すると、スクロールバーが表示されるはずです。そこで、NSOpenGLView を NSScrollView に配置することが私の解決策になると考えました。しかし、そうではありません。うまくいきません。どうすればそれができますか?
cocoa - OpenGL glGenBuffers() を理解するのを手伝ってください
これが取り引きです: コードを のままにしておくとglGenBuffers(1, vertexBuffers)
、コードはコンパイルされて動作します。でも、サイズは22
なのでいいなと思いました。vertexBuffers
何か不足していますか?
以下のコード:
macos - OpenGLキューブが表示されていませんが、近くの飛行機と遠くの飛行機があるのでしょうか?
手動の遠近法変換を実行しようとした後、キューブを表示できません。私のコードは以下のとおりです。私はそれがおそらく私の近距離と遠距離の飛行機の数であるのではないかと疑っています。
問題は何でしょうか?ああ、そしてシェーダーも:
OK、コードのセクションを次のように変更しました。
私はこれを手に入れます:
台形のベースのように、バックエンド(緑)は遠くでは小さく見え、大きくは見えませんか?
cocoa - Cocoa (Mac) を使用して 2 つの NSOpenGLViews を描画する方法
XCode を使用して Cocoa アプリで 2 つの NSOpenGLViews を描画したいのですが、各ビューで異なるものを描画します。NSOpenGLContext とメソッド SetView を使用する必要があると思います。しかし、私はこれを正確に使用する方法を見つけていません。この呼び出しをどこで使用する必要がありますか? それを行う正しい方法はどれですか?
macos - NSOpenglContext リソース、不適切なレンダリング
NSOpenGLContext を機能させるのに問題があります。すべてのopenglのもの、リソース、vbosなどを処理する静的オブジェクト(3Dエンジン)があります..
ココア バージョンの場合、次のような NSOpenGLContext を作成します。
エンジンの初期化後、NSView を作成します。NSView の作成後、prepareOpenGL 関数で、エンジンから NSOpenGLContext メンバーを現在の NSOpenGLContext に設定しました。
次に、NSView の関数 lockFocus で、コンテキストのビューを設定します。
今、描画するときに描画するリソースを取得できません。バッファ アーティファクトがたくさんあるだけです。
共有オプションを使用して、NSView の 2 つ目のコンテキストを作成しようとしましたが、同じ結果になりました。
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ヒットしかないのですが、とにかくこれについて言及したほうがいいと思いました。
macos - バックグラウンド スレッドで OpenGL をレンダリングし、Mac OSX の Cocoa コントロールで引き続き動作
OpenGL ベースの mac osx コントロールに取り組んでいます。現在、NSOpenGLView と CVDisplayLink を使用して、バックグラウンド スレッドでレンダリングを調整しています。これはうまく機能しますが、この OpenGL ベースのコントロールの上に Cocoa コントロールを表示できるようにする必要があります。
Cocoa コントロールをボーダレス ウィンドウに配置することでこれを実行できることはわかっていますが、それは私のユーザーにとってあまり良いワークフローとは思えません。
別の方法として、ビューをレイヤーでサポートすることもできますが、それが機能するようになりましたが、メイン スレッドで OpenGL コンテンツをレンダリングするのは好きではありません。フレーム レートが低下すると、メイン スレッドがブロックされることがあります。
両方の長所を活かす方法を示すサンプルはありますか?
cocoa - テクスチャへの OpenGL レンダリング
これが以前に尋ねられたことは知っていますが(検索しました)、これは違うと約束します。
Mac OS X Mountain Lion 用のアプリを作成していますが、ブルーム効果を少し追加する必要があります。シーン全体を画面サイズのテクスチャにレンダリングし、テクスチャのサイズを小さくして、ピクセル バッファに渡し、クワッドのテクスチャとして使用する必要があります。
通常のテクニックのいくつかが機能していないように見えるので、もう一度質問します。#version
、layout
、またはout
はコンパイルされないため、フラグメント シェーダーでは使用できません。通常どおり使用するgl_FragColor
と、レンダリングしようとしているシーンではなく、アプリの背後に画面のランダムな部分が表示されます。ドキュメントには、そのようなことについては何も書かれていません。
では、基本的に、OpenGL の Mac 実装で適切にテクスチャをレンダリングするにはどうすればよいでしょうか? これを行うには拡張機能を使用する必要がありますか?
ここからコードを使用します