問題タブ [pbr]

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 投票する
0 に答える
94 参照

c++ - 未解決の外部シンボルに関する pbrt の質問

最近はpbrt(物理ベースレンダリング)の勉強をしています。ただし、VS2019で使用するには疑問があります。pbrt システムを cmake し (コマンド "git clone --recursive https://github.com/mmp/pbrt-v3/"を使用)、VS に含めました。簡単なテストコードを書いた後:

VS2019 では未解決の外部シンボル エラーが多数発生しますが、ここではそのすべてを示していません。

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "int __cdecl Imf::globalThreadCount(void)" (?globalThreadCount@Imf@@YAHXZ) PBRT E:\PBRT\PBRT\libpbrt.lib(imageio.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "public: __cdecl Imf::RgbaOutputFile::RgbaOutputFile(char const * const,class Imath::Box<class Imath::Vec2 > const &,class Imath::Box <class Imath::Vec2 > const &,enum Imf::RgbaChannels,float,class Imath::Vec2,float,enum Imf::LineOrder,enum Imf::Compression,int)" (??0RgbaOutputFile@Imf@@QEAA @QEBDAEBV?$Box@V?$Vec2@H@Imath@@@Imath@@1W4RgbaChannels@1@MV?$Vec2@M@3@MW4LineOrder@1@W4Compression@1@H@Z) PBRT E:\PBRT \PBRT\libpbrt.lib(imageio.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "public: virtual __cdecl Imf::RgbaOutputFile::~RgbaOutputFile(void)" (??1RgbaOutputFile@Imf@@UEAA@XZ) PBRT E:\PBRT\PBRT\ libpbrt.lib(imageio.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "public: void __cdecl Imf::RgbaOutputFile::setFrameBuffer(struct Imf::Rgba const *,unsigned __int64,unsigned __int64)" (?setFrameBuffer@RgbaOutputFile@Imf@@ QEAAXPEBURgba@2@_K1@Z) PBRT E:\PBRT\PBRT\libpbrt.lib(imageio.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "public: class Imath::Box<class Imath::Vec2 > const & __cdecl Imf::RgbaInputFile::displayWindow(void)const " (?displayWindow@RgbaInputFile@Imf @@QEBAAEBV?$Box@V?$Vec2@H@Imath@@@Imath@@XZ) PBRT E:\PBRT\PBRT\libpbrt.lib(imageio.obj) 1

重大度コード 説明 プロジェクト ファイル 行抑制状態 エラー LNK2001 未解決の外部シンボル inflate PBRT E:\PBRT\PBRT\Ptex.lib(PtexReader.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK2001 未解決の外部シンボル inflateEnd PBRT E:\PBRT\PBRT\Ptex.lib(PtexReader.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK1120 15 unresolved externals PBRT E:\PBRT\x64\Release\PBRT.exe 1

pbrt の何が問題になっていますか? 私はcmakeのときに何も間違っていなかったと思いますが、今何をすべきでしょうか? この質問に答えていただきありがとうございます。

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

ios - SCNView はシミュレーターで iPhone 6 の OpenGL を使用し、

SceneKit はシミュレータ OpenGL で iPhone 6 の SCNView を使用します。これにより、ライトニング モデルが PBR から Phong に変更されます。

エラー: 物理ベースの照明モデルは OpenGL レンダラーでサポートされていません。代わりに Phong を使用してください

それを修正する方法はありますか?新しい iPhone は SceneKit のモデルを PBR で正しくレンダリングします

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

ios - SCNParticleSystem が間違った方法で部分的に隠されている、または隠されている

パーティクル システムに問題があり、まれに、間違った方法で遮られることがあります。プリント スクリーンに表示されるパーティクル システムは、その表面からパーティクルを放出する球体 (目に見えないマテリアル、マテリアルの透明度 = 0.0) です。1 秒あたり 250 個のパーティクルのように - 魔法はありません - そしてパーティクル システムは 99% 正常に動作します。

100m x 100m のような非常に大きな直径を持つフロア (SCNPlane) も表示されます。カメラがスムーズに移動するため、カメラが飛んでビューの角度が少し変化すると、オクルージョンが発生します。カメラの角度によっては、2 番目の画像でわかるように、粒子システムが地平線の後ろにとどまるように、間違った方法で部分的に遮られる可能性がありますが、そうではありません。半径1m。

誰かが同様の問題に遭遇しましたか? これをすべてのケースで(すべての視野角から)正しくレンダリングするためにできることはありますか。

パーティクル システムが完全に消えてしまうこともあります。i.Ex カメラがパーティクル システムの真上 (20m) から見た場合。

グッドパーティクルシステム 悪い粒子システム

(シーンは SceneKit を使用した物理ベースのレンダリングを使用します - 背景はシンプルなスカイボックスです)

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

opengl - PBR マテリアルから適切なアルファ (透明度) 値を生成する

私は PBR シェーダーを作成しており、画像の出力であるアルファ値を生成する正しい方法を決定しようとしています。目標は、「あらかじめ乗算されたアルファ」である最終画像を作成することです。これにより、後で別のオーバー合成操作で使用できます (たとえば、別の背景画像の上に合成します)。これは、透明なサーフェス上のスペキュラ ハイライトの場合を除いて、すべてうまく機能します。

この記事を読む: https://google.github.io/filament/Filament.md.html#lighting/transparencyandtranslucencylighting

特に:

窓を観察すると、拡散反射が透明であることがわかります。一方、鏡面反射率が明るいほど、ウィンドウの不透明度は低くなります。この効果は図 63 で見ることができます。シーンはガラスの表面に適切に反射されていますが、太陽の反射ハイライトは十分に明るく、不透明に見えます。

また、コード スニペットも含まれています。

ガラスをレンダリングする場合、メタリック レベルは 0 になるため、baseColor からまったくプルせず、スペキュラー レベルを使用するだけです。これはすべて理にかなっており、上記の引用のように、透明なガラス上でもスペキュラー ハイライトが発生する可能性があることを意味します。baseColor テクスチャは、デカールを含むものなど、既に乗算済みのアルファ イメージであるため、最後に単にアルファを乗算したくはありません。たとえば、「A」という文字のステッカーが貼られたガラス板を描いているとします。

私の質問は、ガラスの透明な部分にスペキュラー ハイライトがあるピクセルの場合、合成が下流で機能するためにはアルファ値がどうあるべきかということです。上記のコードによると、アルファは 0 になり、後で Over 操作がうまく動作しなくなります。事前に乗算されたアルファのプロパティは max(R,G,B) <= A であるため、これを言いますが、このスペキュラー ハイライトは max(R,G,B) > A になります。スペキュラー ハイライトとそれが合成される背景との間の加算で、最終的な画像が吹き飛ばされます。これらのピクセルにより有用なアルファ値を与えるために、アルファを max(specular, alpha) に設定する必要がありますか? これを処理するためのより「正しい」方法はありますか? ありがとう