55
66class ParticleField "ParticleField" (
77 customData = {
8- string userDocBrief = """A ParticleField prim is used as a base to desribe different types
8+ string userDocBrief = """A ParticleField prim is used as a base to describe different types
99 of concrete ParticleField implementations, such as, but not limited
1010 to, 3D Gaussian Splats."""
1111 }
@@ -81,9 +81,9 @@ class ParticleField "ParticleField" (
8181 )
8282}
8383
84- class "PositionAttributeAPI " (
84+ class "LightFieldPositionAttributeAPI " (
8585 customData = {
86- string userDocBrief = """A ParticleField related appliedAPI schema that provides a position
86+ string userDocBrief = """A ParticleField related applied schema that provides a position
8787 attribute to define the locations of the particles."""
8888 }
8989)
@@ -100,9 +100,9 @@ class "PositionAttributeAPI" (
100100 )
101101}
102102
103- class "OrientationAttributeAPI " (
103+ class "LightFieldOrientationAttributeAPI " (
104104 customData = {
105- string userDocBrief = """A ParticleField related appliedAPI schema that provides an
105+ string userDocBrief = """A ParticleField related applied schema that provides an
106106 orientation attribute to define the orientation of the particles."""
107107 }
108108)
@@ -119,9 +119,9 @@ class "OrientationAttributeAPI" (
119119 )
120120}
121121
122- class "ScaleAttributeAPI " (
122+ class "LightFieldScaleAttributeAPI " (
123123 customData = {
124- string userDocBrief = """A ParticleField related appliedAPI schema that provides a
124+ string userDocBrief = """A ParticleField related applied schema that provides a
125125 scale attribute to define the scale of the particles."""
126126 }
127127)
@@ -140,9 +140,9 @@ class "ScaleAttributeAPI" (
140140 )
141141}
142142
143- class "OpacityAttributeAPI " (
143+ class "LightFieldOpacityAttributeAPI " (
144144 customData = {
145- string userDocBrief = """A ParticleField related appliedAPI schema that provides a
145+ string userDocBrief = """A ParticleField related applied schema that provides a
146146 opacity attribute to define the opacity of the particles."""
147147 }
148148)
@@ -159,65 +159,71 @@ class "OpacityAttributeAPI" (
159159 )
160160}
161161
162- class "GaussianShapeAPI " (
162+ class "LightFieldKernelBaseAPI " (
163163 customData = {
164- string userDocBrief = "Defines the Gaussian shape function."
164+ string userDocBrief = """Defines a base-class type applied schema that all applied schema
165+ that provides the a ParticleField kernel will automatically apply."""
165166 }
166167)
167168{
168169}
169170
170- class "TriangleShapeAPI" (
171+ class "LightFieldKernelGaussianEllipsoidAPI" (
172+ apiSchemas = ["LightFieldKernelBaseAPI"]
171173 customData = {
172- string userDocBrief = """Defines a base shape as a equilateral triangle with given edge
173- length."""
174+ string userDocBrief = "Defines the gaussian ellipsoid kernel for a given ParticleField."
174175 }
175176)
176177{
177- float kernelShape:triangle:edgeLength = 1 (
178+ }
179+
180+ class "LightFieldKernelGaussianTriangleAPI" (
181+ apiSchemas = ["LightFieldKernelBaseAPI"]
182+ customData = {
183+ string userDocBrief = "Defines the gaussian triangle kernel for a given ParticleField."
184+ }
185+ )
186+ {
187+ float kernel:triangle:edgeLength = 1 (
178188 customData = {
179189 string userDocBrief = """The edge length of the equilateral triangle before any scaling
180190 is applied."""
181191 }
182192 )
183193}
184194
185- class "GaussianFalloffFunctionAPI" (
195+ class "LightFieldKernelConstantTriangleAPI" (
196+ apiSchemas = ["LightFieldKernelBaseAPI"]
186197 customData = {
187- string userDocBrief = "Defines a Gaussian fall-off function ."
198+ string userDocBrief = "Defines the gaussian triangle kernel for a given ParticleField ."
188199 }
189200)
190201{
191202}
192203
193- class "ImplicitShapeFalloffThresholdAPI " (
204+ class "LightFieldRadianceBaseAPI " (
194205 customData = {
195- string userDocBrief = """Defines a shape implicitly by providing a threshold value for the
196- fall-off function linked with the associated shape appliedAPI ."""
206+ string userDocBrief = """Defines a base-class type applied schema that all applied schema
207+ that provides the a ParticleField kernel will automatically apply ."""
197208 }
198209)
199210{
200- float kernelFalloff:implicitShapeFalloff:threshold = 0.01 (
201- customData = {
202- string userDocBrief = """The threshold value for the kernel's fall-off function that
203- defines the surface boundary."""
204- }
205- )
206211}
207212
208- class "SphericalHarmonicsAttributeAPI" (
213+ class "LightFieldSphericalHarmonicsAttributeAPI" (
214+ apiSchemas = ["LightFieldRadianceBaseAPI"]
209215 customData = {
210- string userDocBrief = """A ParticleField related appliedAPI schema that provides spherical
216+ string userDocBrief = """A ParticleField related applied schema that provides spherical
211217 harmonics attributes to define the radiance of the particles."""
212218 }
213219)
214220{
215- float3[] primvars: radiance:sphericalHarmonicsCoefficients (
221+ float3[] radiance:sphericalHarmonicsCoefficients (
216222 customData = {
217223 string userDocBrief = "Flattened array of SH coefficients."
218224 }
219225 )
220- half3[] primvars: radiance:sphericalHarmonicsCoefficientsh (
226+ half3[] radiance:sphericalHarmonicsCoefficientsh (
221227 customData = {
222228 string userDocBrief = "Flattened array of SH coefficients."
223229 }
@@ -229,22 +235,23 @@ class "SphericalHarmonicsAttributeAPI" (
229235 )
230236}
231237
232- class "SphericalBetaAttributeAPI" (
238+ class "LightFieldSphericalBetaAttributeAPI" (
239+ apiSchemas = ["LightFieldRadianceBaseAPI"]
233240 customData = {
234- string userDocBrief = """A ParticleField related appliedAPI schema that provides spherical
241+ string userDocBrief = """A ParticleField related applied schema that provides spherical
235242 beta attributes to define the radiance of the particles."""
236243 }
237244)
238245{
239- float[] primvars: sphericalBeta:beta (
246+ float[] sphericalBeta:beta (
240247 customData = {
241248 string userDocBrief = "Beta parameter per-particle."
242249 }
243250 )
244251}
245252
246253class ParticleField_3DGaussianSplat "ParticleField_3DGaussianSplat" (
247- apiSchemas = ["PositionAttributeAPI ", "OrientationAttributeAPI ", "ScaleAttributeAPI ", "OpacityAttributeAPI ", "GaussianShapeAPI ", "GaussianFalloffFunctionAPI", "SphericalHarmonicsAttributeAPI "]
254+ apiSchemas = ["LightFieldPositionAttributeAPI ", "LightFieldOrientationAttributeAPI ", "LightFieldScaleAttributeAPI ", "LightFieldOpacityAttributeAPI ", "LightFieldKernelGaussianEllipsoidAPI ", "LightFieldSphericalHarmonicsAttributeAPI "]
248255 customData = {
249256 string userDocBrief = """This is a concrete ParticleField representing the original 3D
250257 Gaussian Splats technique (https://arxiv.org/abs/2308.04079)."""
0 commit comments