| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
OpenUSD: Regenerate precompiled headers This is primarily to remove boost headers now that backwards support for boost::python has been removed. (Internal change: 2359682) | 1 年前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Back plate patch. This change fixes 3 bugs. 1. When camera guides were enabled, the back plates would disappear. This is because the prior _PrimsAdded call would remove the whole subtree but only add in the back plate children. Turning on the camera guides causes a re-sync more frequently thus causing this to bug to surface. The solution is to revise the _RemoveSubtrees function to remove only the back plate children but ensure that _PrimsRemoved still removes the entire subtree. 2. Not recieving dirty calls for timesampled dirtied backplate properties. Modifed _PrimsDirtied to keep track of dirtied prims for HdXformSchema locators as well as modifying the adapter to issue locators for timesamples. 3. The backplate schema is at camera:backplate:APPLIED_INSTANCE_NAME, so we cannot give it a meaningful GetDefaultLocator(), instead we rely on HdCameraSchema::GetBackPlateLocator() (Internal change: 2418144) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Support MaterialX UsdPrimvarReader primvars in Storm This is built on top of a corresponding MaterialX PR, that fixes nested geomprop nodes: https://github.com/AcademySoftwareFoundation/MaterialX/pull/2957 Rendering a UsdPreviewSurface network that reads a primvar through an ND_UsdPrimvarReader_* node (for example varname="st" feeding a UsdUVTexture) failed in Hydra Storm with: HdSt_ApplyMaterialXFilter -- Unable to create the Glslfx Shader. MxException: No "geomprop" value found for geompropvalue node "primvar". That crash exposed a few different issues this PR fixes, all in how hdMtlx/hdSt build the document and emit the glslfx. 1. Preserve the topology-affecting primvar name. The topological classification (_IsTopologicalShader) only recognized the native geompropvalue family, so a UsdPrimvarReader varname was stripped from the anonymized network. 2. Recognize primvar-reader nodes generically (hdMtlx). A node is treated as a primvar reader when its implementation nodegraph wraps a geompropvalue or geompropvalueuniform node. New helpers HdMtlxIsPrimvarReaderNodeDef, HdMtlxGetPrimvarNameInputName and HdMtlxGetPrimvarDefaultInputName discover this and the input names that carry the primvar name and fallback (read from the interfacename on the wrapped geompropvalue inputs, for example varname and fallback for UsdPrimvarReader). These drive three call sites that previously only understood the native geompropvalue node by category or by the hardcoded geomprop/default parameter names: - _IsTopologicalShader now treats any primvar-reader node as topological. - _AddMaterialXNode now registers primvar-reader nodes in hdPrimvarNodes so the primvar is declared and bound. - _UpdatePrimvarNodes now extracts the primvar name and fallback from the correct inputs instead of assuming geomprop/default. Detecting by implementation structure rather than by family name keeps this robust for any future node that wraps a geompropvalue. Over-preserving a parameter is always correctness-safe; the only cost is slightly reduced shader reuse for such nodes, matching how the native geompropvalue node is already handled. 3. Emit glslfx-compatible primvar types (hdSt/materialXShaderGen.cpp). The primvar attributes block of the generated glslfx took its type name from the target shader language syntax. On Metal that produced names like float2, which HioGlslfxConfig does not understand (it accepts float, double, int, vec2, vec3, vec4), so the primvar declaration was rejected, st fell back to a default, and texture coordinates were lost (surfaces rendered untextured). The attributes type is now mapped to a glslfx type independent of the target language. This is a Metal-specific defect that became reachable only once a primvar actually reached shader generation. Closes #4091 (Internal change: 2419116) | 3 个月前 | |
Support MaterialX UsdPrimvarReader primvars in Storm This is built on top of a corresponding MaterialX PR, that fixes nested geomprop nodes: https://github.com/AcademySoftwareFoundation/MaterialX/pull/2957 Rendering a UsdPreviewSurface network that reads a primvar through an ND_UsdPrimvarReader_* node (for example varname="st" feeding a UsdUVTexture) failed in Hydra Storm with: HdSt_ApplyMaterialXFilter -- Unable to create the Glslfx Shader. MxException: No "geomprop" value found for geompropvalue node "primvar". That crash exposed a few different issues this PR fixes, all in how hdMtlx/hdSt build the document and emit the glslfx. 1. Preserve the topology-affecting primvar name. The topological classification (_IsTopologicalShader) only recognized the native geompropvalue family, so a UsdPrimvarReader varname was stripped from the anonymized network. 2. Recognize primvar-reader nodes generically (hdMtlx). A node is treated as a primvar reader when its implementation nodegraph wraps a geompropvalue or geompropvalueuniform node. New helpers HdMtlxIsPrimvarReaderNodeDef, HdMtlxGetPrimvarNameInputName and HdMtlxGetPrimvarDefaultInputName discover this and the input names that carry the primvar name and fallback (read from the interfacename on the wrapped geompropvalue inputs, for example varname and fallback for UsdPrimvarReader). These drive three call sites that previously only understood the native geompropvalue node by category or by the hardcoded geomprop/default parameter names: - _IsTopologicalShader now treats any primvar-reader node as topological. - _AddMaterialXNode now registers primvar-reader nodes in hdPrimvarNodes so the primvar is declared and bound. - _UpdatePrimvarNodes now extracts the primvar name and fallback from the correct inputs instead of assuming geomprop/default. Detecting by implementation structure rather than by family name keeps this robust for any future node that wraps a geompropvalue. Over-preserving a parameter is always correctness-safe; the only cost is slightly reduced shader reuse for such nodes, matching how the native geompropvalue node is already handled. 3. Emit glslfx-compatible primvar types (hdSt/materialXShaderGen.cpp). The primvar attributes block of the generated glslfx took its type name from the target shader language syntax. On Metal that produced names like float2, which HioGlslfxConfig does not understand (it accepts float, double, int, vec2, vec3, vec4), so the primvar declaration was rejected, st fell back to a default, and texture coordinates were lost (surfaces rendered untextured). The attributes type is now mapped to a glslfx type independent of the target language. This is a Metal-specific defect that became reachable only once a primvar actually reached shader generation. Closes #4091 (Internal change: 2419116) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Back plate patch. This change fixes 3 bugs. 1. When camera guides were enabled, the back plates would disappear. This is because the prior _PrimsAdded call would remove the whole subtree but only add in the back plate children. Turning on the camera guides causes a re-sync more frequently thus causing this to bug to surface. The solution is to revise the _RemoveSubtrees function to remove only the back plate children but ensure that _PrimsRemoved still removes the entire subtree. 2. Not recieving dirty calls for timesampled dirtied backplate properties. Modifed _PrimsDirtied to keep track of dirtied prims for HdXformSchema locators as well as modifying the adapter to issue locators for timesamples. 3. The backplate schema is at camera:backplate:APPLIED_INSTANCE_NAME, so we cannot give it a meaningful GetDefaultLocator(), instead we rely on HdCameraSchema::GetBackPlateLocator() (Internal change: 2418144) | 3 个月前 | |
[hdx] Guard OIT UBO against misbehaving applications HdStRenderPassState conditionally includes alphaThreshold in the uniform BAR layout only when it is not zero. Hdx OIT expects alphaThreshold to be zero for both passes, so we expect to reuse a single UBO for both passes. We also never recompile the shaders. Both optimizations have performance benefits. Applications should never set alphaThreshold on Hdx's OIT task params. If an application does set something other than HtRenderPassState's default of zero, OIT would break due to mismatch between the UBO layout and the shader. To avoid that, OIT guards against non-zero alphaThreshold. Please note that this guard preserves the correct behavior of OIT, but applications that persist in sending erroneous non-zero alphaThreshold will experience performance loss due to frequent resizing of the uniform BAR. (Internal change: 2417781) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
[hd, hdSt, hdx, hgi, usdImagingGL] OIT improvements and fixes - Implement early fragment test directly in the shader when it is not supported by the graphics API. - Fix recompilation of OIT shaders when garbage collection is called. - Add a separate RenderPass to the oitRenderTask and make it use its own RenderPass State to hold the translucent pass information; this avoids recompilation of the OIT shaders. - Merge oitDepth and oitIndex buffer into a single interleaved buffer to reduce buffer count; needed for platforms that strictly limit buffer count. - Update codeGen to support handling writable and indexed interleaved buffer. - Fix small bug when querying for a resource with an empty name. - Updated oit shaders to use the new merged buffer. - Pack the transmission, depth and color for OIT (gated behind an env var switch; off by default) * Pack the RGBA color originally stored in a vec4 into a uvec4 * Pack the depth and transmission into a uint where the first 8 bits store the transmission(alpha) value and the rest is reserved for the depth. This results in improving the size of the OIT buffer by a factor of 4. - Add a new test for OIT in usdImagingGL for Packed OIT and OIT. - Add a new test to verify avoidance of unnecessary shader recompilation. Packing memory comparison: Standard = 102236160 ~ 97.5MB for a resolution of 1024x780 with mssa vertex stride 16 bytesPerElement = 16 numElements = 1024 * 780 = 6389760 totalSize = 1024 * 780 * 16 = 102236160 Packed = 25559040 ~ 24.3MB for a resolution of 1024x780 with mssa vertex stride 4 bytesPerElement = 4 numElements = 1024 * 780 = 6389760 totalSize = 1024 * 780 * 4 = 25559040 This change implements portions of the theory in: https://interplayoflight.wordpress.com/2022/06/25/order-independent-transparency-part-1/ Closes #3888 (Internal change: 2410914) | 4 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
HdRendererPlugin::IsSupported: removing old overloads. (Internal change: 2415844) | 3 个月前 | |
Regenerate precompiled headers This change regenerates precompiled headers throughout the tree. It also adds a pch.h file for the newly-created usdLod schema domain. (Internal change: 2414923) | 3 个月前 | |
[hd,hdar] Create HdSystemSchema and HdarSystemSchema. (Internal change: 2256624) (Internal change: 2256664) (Internal change: 2256714) | 3 年前 |