問題タブ [sharpgl]
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.
wpf - WPF プロジェクトの OpenGL のバージョンが正しくありません
2 つの別個の WPF プロジェクトがあります。私の目標: プロジェクト B を変更して、プロジェクト A と同じ OpenGL オブジェクト インスタンス バージョンを持つようにします。
両方とも、次の行を使用して、ある時点で変数「gl」をインスタンス化します。
ブレークポイントを設定し、そのオブジェクト プロパティの 'gl' を確認した後、プロジェクト A に次のように表示されます。
しかし、プロジェクト B では、次のように表示されます。
「args」に関して、両方のプロジェクトは次の方法で gl をインスタンス化します。
どちらのプロジェクトも、次の方法でそのメソッドを呼び出します。
ここから「args」が明示的に渡されていないことに注意してください。関数は、OpenGLEventHandler のようなより深いコンテキストで呼び出す必要があると考えました。ただし、 args もその関数のパラメーターであることに気付きました。
SceneGraph.dll にあるため、OpenGLEventHandler のソース コードにアクセスできません。
私のプロジェクトはVisual Studioから実行されるWPFであるため、args変数が.configまたは.xamlファイルによって決定されるかどうか疑問に思っています。ただし、OpenGL に関するファイルには大きな違いはありません。
プロジェクト A の MainWindow.xaml:
プロジェクト B の MainWindow.xaml
App.config、App.xaml、Settings.settings などのファイルは他にもありますが、どのファイルを共有するのが最も役立つかはわかりません。
c# - 名前「OpenGLControl」は名前空間「clr-namespace:SharpGL.WPF;assembly=SharpGL.WPF」に存在しません
openGLラッパーに問題があります-SharpGL->アセンブリが見つからないため、ソリューションを構築できません。
名前「OpenGLControl」は名前空間「clr-namespace:SharpGL.WPF;assembly=SharpGL.WPF」に存在しません
必要なアセンブリはすべて参照されています。オブジェクト ブラウザでも、.NET 4.5.2 と VS2013 を使用しているコンテンツ全体を確認できます。
opengl - Unsigned int テクスチャと正規化された float の間の変換 (GL_RED_INTEGER から GL_RGB)
unsigned int テクスチャから正規化された float に変換し、再び元に戻す正しい方法は何ですか?
テストとして、現在 unsigned int テクスチャを標準の RGB コンテキストにレンダリングしようとしていますが、次のように動作していますが、うまくいきません。
関連するドローコード:
テクスチャの作成
現在のGLSLコード
---UPDATED---- (コメント投稿者が親切に指摘した愚かなエラーを修正) #version 150 コア
したがって、ポイントを無効にしているように見えるフロートキャストを実行しているため、GLSLコードの現在の状態にはあまり満足していません(特に機能しないため:p)。
理由:
私は、テクスチャの一部が単一チャネルの unsigned int として保存され、他のテクスチャがトリプル チャネル float として保存されるコンポジターに取り組んでいます。
注: SharpGLを使用しています
c# - SharpGL は拡張関数 glShaderSource を呼び出すことができません
SharpGL を使用してシェーダーを作成しようとすると、次の例外が発生します
私が現在使用しているコードは
例外はshaderProgram.Create
行にあります。シェーダー ソース文字列を削除または縮小すると、エラーは発生しませんが、シェーダーがコンパイルされず、Failed to compile shader with ID 2.
エラーが発生します。また、例外が発生したソースコードの場所を見つけましたが、これを修正する方法や実際の原因はわかりません。
opengl - 画像を合成するとき、画像が正しいアスペクト比でレンダリングされるようにするための最良の方法は何ですか?
互いの上にレンダリングされる画像レイヤーがあるという意味で、少し「フォトショッピー」な何かを書いています。
各レイヤーは FBO にレンダリングされ、fbo はエフェクトなどを介して実行できます。
ユーザーは画像を歪めることができますが、最初は画像を独自の縦横比でレンダリングする必要があります。
現在、各画像は次のように FBO に描画されます。
そして私がブレンドしているとき:
現在、すべてのテクスチャの歪みなどは src テクスチャ マトリックスを介して発生します。現在、モデルと dst は常に ID に設定されており、投影マトリックスはありません。それはすべて間違っていると感じます。
最終的な複合テクスチャは、画面サイズのサーフェスとビュー ポートを使用して画面にレンダリングされます。
各画像の縦横比が維持されるようにするにはどうすればよいですか?
ps これには大規模なリファクタリングが必要になる可能性があることは承知しています。
opengl - 画像をコンポストするための複数の FBO または複数の添付ファイルまたは FBO の「ダブル バッファ」
状況
私は画像コンポジターを作成しており、FBO を使用しています。
gl は現在書き込んでいるテクスチャを読み取ることができないため、現在、疑似「Fbo フリップ チェーン」ロジックを使用しています。約 10 個の FBO のリストを作成し、レンダリングするたびに、以前の FBO テクスチャの 1 つから問題なく読み取ることができる次の FBO に移動します。
ただし、これには深刻な欠陥があります。これは、現在コンポストを行っている方法のため、現在の状態でまだ必要な場合に fbo を上書きすることができるためです。「ロック/ロック解除」ロジックを結びましたが、不安定です。
現在、画像は次の段階を経ています。
- イメージをテクスチャに描画します (fbo を使用)
- fbo フリップ
- すべての画像「子」を画像に合成します
- 各子のfboフリップはこれが問題です
- 画像を目的のタイプに変換します
- fbo フリップ
- 画像を目的地とブレンドする
- fbo フリップ
- 兄弟との堆肥化のためにテクスチャを渡す
このフリップ チェーン合成のアイデアを再構成することにしました。私の見方では、次のいずれかを実行することをお勧めします。
可能な解決策
- 各画像には独自の複数の fboが含まれ、それぞれに独自のレンダー ターゲットがあり、各段階で指定された fbo に切り替えます*
- 各イメージには 1 つの fbo と複数のテクスチャ ターゲットが含まれ、ステージごとにアタッチメントが変更されます*
- 各画像には2 つのレンダー ターゲット(「前面」、「背面」) があり、1 つのマスター fboがあり、マスター fbo は「前面」テクスチャを上書きし、「背面」テクスチャから読み取ります (バック バッファーのように考えます)。およびフロント バッファ)。各ステージ*の終わりにそれらを交換します。
*(各ステージ = フリップが現在実行されている場所)
私は現在、番号 2 に傾いています。各イメージは、各ステージに指定される 4/5 のテクスチャで終わります。また、画像が「描画」されると、別の段階から描画を開始できるかどうかをテストできます。
たとえば、画像は描画され、既に正しいタイプに変換されているため、"post_convert" テクスチャを取得してブレンドするだけです。
問題:
- レンダー ターゲットのアタッチとデタッチのどちらが速いかはわかりません。または拘束力のあるFBO...
- 現在、非常に多くのテクスチャと fbo が飛び交っています。また、C# で GL を使用してプログラミングを行っているという事実に非常に警戒しているため、C# の GC と並行して gl メモリを管理するシステムを確立する必要があります。
c# - OpenGL/SharpGL: 2D 画像のレンダリングが水平方向に引き伸ばされる
私は C# で (SharpGL を使用して) OpenGL をいじっていますが、私は DirectX のバックグラウンドを持っています... OpenGL はかなり似ていると思いました。 2D 画像を水平方向に少し引き延ばします (Lena を非常に肥大化させます)。
私の問題はオルソ投影に起因していると思いますが、私は肯定的ではありません.draw関数に投影を詰め込んで、期待どおりに機能していることを確認しました。テクスチャは頂点に正しくレンダリングされており、画像は BMP として 512:512 です (C# にプルしたときに検証済み)。
おそらく誰かが私のコードを見て、私を助けてくれるでしょうか? このコードのほとんどを他の例からコピーし、少しいじったので、これが私の最新の化身です。