問題タブ [optix]
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 - cudaでの3Dモデリング(レイトレーシングの前段階)
CUDAを使用して単純なレイトレーシングコードを実装しようとしています。
モデリング部分で立ち往生しています。オブジェクトを使用して3D空間をモデル化する方法を理解しようとしています(中央に3D立方体を含む単純な3D空間から始めます)。
私はopenGLとCUDAを使ったハイブリッドプロジェクトについて読んだことがありますが、それらの記事はあまりにも一般的でした-そして私が言ったように私はこれに慣れていません。
そのような3Dモデルを実装するためのライブラリ/コードはありますか?
visual-studio - 同じ Visual Studio プロジェクト内で CUDA C ファイルと Nvidia OptiX ファイルをコンパイルする方法
現在、Visual Studio で Optix レイ トレーシング エンジンを使用しています。私の問題は、データを計算し、Optix でレンダリングすることです。
データを計算する純粋な C CUDA プログラムを既に作成しましたが、Optix プロジェクト内に統合できません。
SDK の CMakeLists.txt を使用して変更し、Optix プロジェクトをコンパイルしました。プロジェクトで C CUDA ファイル (.cu) と Optix カーネル (.cu) を同じ VS プロジェクトでコンパイルする方法についての洞察はありますか?
cuda - 結果を CUDA / Optix のテキスト ファイルに書き込む
私のプログラム Cuda / Optix で計算された変数のテキスト ファイルを作成できるかどうかを知りたかったのです。つまり、変数は私の .cu ファイルにあるため、CPU によって書き込むことはできません。
cuda - ペイロード内の Optix 動的サイズ配列
optix で動的サイズの配列ペイロードを宣言する方法はありますか? Optix のドキュメントをググって読みましたが、Optix では malloc の使用が許可されていないことがわかりました。次のようなことができる方法はありますか?
一部のユーザーパラメーターに応じて、配列のサイズを N に変更しました。
NVIDIA フォーラムで過去の質問を検索してみましたが、セキュリティ上の問題により閉鎖されたようです。
graphics - cuda のプログレッシブ フォトン マッピングの透明度
私は、optix に基づくプロジェクトに取り組んでいます。プログレッシブ フォトン マッピングを使用する必要があるため、サンプルからプログレッシブ フォトン マッピングを使用しようとしていますが、透明マテリアルが実装されていません。私はよくグーグルで検索し、透明素材を含む他のサンプル (Glass、Tutorial、Whitted など) を理解しようとしました。最後に、次のように解決策を得ました。
- ヒットポイント(交点)を見つけます(下のh)
- その点から別の光線を生成する
- 新しく生成された点の色を使用する
従うと、その部分のコードを見つけることもできます。なぜなら、新しく生成されたレイ (上記のパート 3) に対して黒色 (.0f、.0f、0.f) を取得する理由がわかりません。
どんなアイデアでも大歓迎です。関数 rtTrace() を使用した後、refr_prd.attenuationにはいくつかの色が含まれている必要があることに注意してください。手順をよりよく理解できるように、reflection と reflaction_color について説明しました。それらは単に無視できます。
c++ - BGRA-> RGBAおよび垂直フリップ、OptiX
色ごとに1バイトの「生の」BGRAテクスチャを含むバッファがあります。線の順序が逆になっています(テクスチャが上下逆になっています)。
BGRAバッファはすべて緑色(0、255、0、255)です。
これをRGBAに変換し、テクスチャラインを反転する必要があります。私はこれを試しました:
しかし、レンダリングされたときの結果は完全な緑色の画面ではありませんが、これは次のとおりです。
ここで何が間違っているのでしょうか?
cuda - OptiX の複数の GPU (非同期起動は可能ですか?)
修士論文にいくつかの課題があります。あなたが私を助けてくれるか、正しい方向に向けてくれることを願っています。
OptiX を使用して、Knaus と Zwicker ( http://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Knaus11.pdf ) による新しいアプローチを使用してプログレッシブ フォトン マッピングを実装しています。このアプローチにより、PPM の各反復/フレームが独立し、マルチ GPU により適したものになります。
私が (単一の GPU で) 行うことは、OptiX を使用して多数のフォトンをトレースし、それらをバッファーに格納することです。次に、光子は CUDA と推力を使用して空間ハッシュ マップに並べ替えられ、GPU を離れることはありません。レンダラーのボトルネックであるため、GPU で空間ハッシュ マップの作成を行いたいと考えています。最後に、このバッファは間接放射輝度推定中に使用されます。つまり、これは、レイ トレーシング、フォトン トレーシング、フォトン マップの生成、および最終的に画像を作成するという複数のパス アルゴリズムです。
OptiX が複数の GPU をサポートできることは理解しています。各コンテキストの起動は GPU 間で分割されます。バッファへの書き込みはシリアル化され、各デバイスにブロードキャストされるように見えるため、バッファの内容は同じです。
私がやりたいのは、1 つの GPU で 1 つのフレームを処理し、2 番目の GPU で次のフレームを処理することです。次に、たとえば CPU または GPU のいずれかで、結合パスで結果を結合できます。各デバイスで各パスを並行して実行できる場合も許容されます (各パス間で同期)。これはどういうわけか可能ですか?
たとえば、2 つの異なるホスト スレッド上の各デバイスにマッピングする 2 つの OptiX コンテキストを作成できますか。これにより、光子が 1 つのデバイス上にあると仮定して、前と同じように CUDA/thrust 空間ハッシュ マップを生成し、パイプラインの最後で生成された 2 つの画像をマージできます。ただし、プログラミング ガイドには、マルチスレッド コンテキスト処理はサポートされていないと記載されています。複数のプロセスを使用することもできますが、プロセス間通信に多くの混乱があります。このアプローチでは、シーン ジオメトリの作成、PTX ファイルのコンパイルなどの作業も重複して行う必要があります。
ありがとう!
cuda - cudaカーネルが実行されているデバイスは何ですか
カーネル (GPU コード) からコードが実行されているデバイスを見つける方法はありますか? blockIdx、threadIdx、blockDim、および gridDim を見つけることができますが、CUDA デバイス ID を見つける方法はありますか?
不思議に思っている人のために、私は OptiX プログラムでそれを使用して、OptiX バッファーをより詳細に制御できるようにする予定です。
cuda - Nvidia Optix SDK 3.0.0 Ubuntu 12.04 のインストール
こんにちは、Ubuntu に linux64 用の nVidia OptiX SDK バージョン 3.0.0 をインストールしようとしています。
.run ファイルをダウンロードしました。実行が終了すると、 ~/NVIDIA-OptiX-SDK-3.0.0-linux64/ というフォルダーができました。
私のホームフォルダにあります。
プリコンパイルされたサンプルは正常に動作しますが、独自のコードをコンパイルしようとすると、コンパイラは .cu ファイルを CUDA ファイルとして処理し、それらを .cu.o にコンパイルしようとするようです。私のプログラムのエラーの出力の1つは次のとおりです。
通常、ファイルはある種の ptx ファイルにコンパイルされますか?
次のエラーは次のとおりです。
機能_rt_buffer_get_64
が見つからないということは、何かが正しくインストールされていないことを感じさせます。
フォルダーには、doc include lib64 SDK SDK-precompiled-samples という名前のサブフォルダーがあります。
何か案は?よろしく