|
4297 | 4297 | Returns → bool: |
4298 | 4298 | *no description available* |
4299 | 4299 |
|
| 4300 | + .. py:method:: mitsuba.Emitter.sampling_weight(self) |
| 4301 | + |
| 4302 | + The emitter's sampling weight. |
| 4303 | + |
| 4304 | + Returns → float: |
| 4305 | + *no description available* |
| 4306 | + |
4300 | 4307 | .. py:class:: mitsuba.EmitterFlags |
4301 | 4308 |
|
4302 | 4309 | This list of flags is used to classify the different types of |
|
4676 | 4683 | In the case of emitters, the weight will include the emitted |
4677 | 4684 | radiance. |
4678 | 4685 |
|
| 4686 | + .. py:method:: mitsuba.EmitterPtr.sampling_weight(self) |
| 4687 | + |
| 4688 | + The emitter's sampling weight. |
| 4689 | + |
| 4690 | + Returns → drjit.llvm.ad.Float: |
| 4691 | + *no description available* |
| 4692 | + |
4679 | 4693 | .. py:method:: mitsuba.EmitterPtr.select_(arg0, arg1, arg2) |
4680 | 4694 |
|
4681 | 4695 | Parameter ``arg0`` (drjit.llvm.ad.Bool): |
@@ -10668,19 +10682,19 @@ |
10668 | 10682 |
|
10669 | 10683 | .. py:data:: mitsuba.MI_VERSION |
10670 | 10684 | :type: str |
10671 | | - :value: 3.2.1 |
| 10685 | + :value: 3.3.0 |
10672 | 10686 |
|
10673 | 10687 | .. py:data:: mitsuba.MI_VERSION_MAJOR |
10674 | 10688 | :type: int |
10675 | 10689 | :value: 3 |
10676 | 10690 |
|
10677 | 10691 | .. py:data:: mitsuba.MI_VERSION_MINOR |
10678 | 10692 | :type: int |
10679 | | - :value: 2 |
| 10693 | + :value: 3 |
10680 | 10694 |
|
10681 | 10695 | .. py:data:: mitsuba.MI_VERSION_PATCH |
10682 | 10696 | :type: int |
10683 | | - :value: 1 |
| 10697 | + :value: 0 |
10684 | 10698 |
|
10685 | 10699 | .. py:data:: mitsuba.MI_YEAR |
10686 | 10700 | :type: str |
@@ -17860,25 +17874,19 @@ |
17860 | 17874 |
|
17861 | 17875 | .. py:method:: mitsuba.Shape.eval_attribute(self, name, si, active=True) |
17862 | 17876 |
|
17863 | | - Evaluate a specific shape attribute at the given surface interaction. |
17864 | | - |
17865 | | - Shape attributes are user-provided fields that provide extra |
17866 | | - information at an intersection. An example of this would be a per- |
17867 | | - vertex or per-face color on a triangle mesh. |
| 17877 | + Returns whether this shape contains the specified attribute. |
17868 | 17878 |
|
17869 | 17879 | Parameter ``name`` (str): |
17870 | 17880 | Name of the attribute to evaluate |
17871 | 17881 |
|
17872 | 17882 | Parameter ``si`` (:py:obj:`mitsuba.SurfaceInteraction`): |
17873 | | - Surface interaction associated with the query |
| 17883 | + *no description available* |
17874 | 17884 |
|
17875 | 17885 | Parameter ``active`` (drjit.llvm.ad.Bool): |
17876 | 17886 | Mask to specify active lanes. |
17877 | 17887 |
|
17878 | 17888 | Returns → :py:obj:`mitsuba.Color3f`: |
17879 | | - An unpolarized spectral power distribution or reflectance value |
17880 | | - |
17881 | | - The default implementation throws an exception. |
| 17889 | + *no description available* |
17882 | 17890 |
|
17883 | 17891 | .. py:method:: mitsuba.Shape.eval_attribute_1(self, name, si, active=True) |
17884 | 17892 |
|
|
17901 | 17909 | Returns → drjit.llvm.ad.Float: |
17902 | 17910 | An scalar intensity or reflectance value |
17903 | 17911 |
|
17904 | | - The default implementation throws an exception. |
17905 | | - |
17906 | 17912 | .. py:method:: mitsuba.Shape.eval_attribute_3(self, name, si, active=True) |
17907 | 17913 |
|
17908 | 17914 | Trichromatic evaluation of a shape attribute at the given surface |
|
17924 | 17930 | Returns → :py:obj:`mitsuba.Color3f`: |
17925 | 17931 | An trichromatic intensity or reflectance value |
17926 | 17932 |
|
17927 | | - The default implementation throws an exception. |
17928 | | - |
17929 | 17933 | .. py:method:: mitsuba.Shape.eval_parameterization(self, uv, ray_flags=14, active=True) |
17930 | 17934 |
|
17931 | 17935 | Parameterize the mesh using UV values |
|
17953 | 17957 | Returns → :py:obj:`mitsuba.Medium`: |
17954 | 17958 | *no description available* |
17955 | 17959 |
|
| 17960 | + .. py:method:: mitsuba.Shape.has_attribute(self, name, active=True) |
| 17961 | + |
| 17962 | + Evaluate a specific shape attribute at the given surface interaction. |
| 17963 | + |
| 17964 | + Shape attributes are user-provided fields that provide extra |
| 17965 | + information at an intersection. An example of this would be a per- |
| 17966 | + vertex or per-face color on a triangle mesh. |
| 17967 | + |
| 17968 | + Parameter ``name`` (str): |
| 17969 | + Name of the attribute |
| 17970 | + |
| 17971 | + Parameter ``si``: |
| 17972 | + Surface interaction associated with the query |
| 17973 | + |
| 17974 | + Parameter ``active`` (drjit.llvm.ad.Bool): |
| 17975 | + Mask to specify active lanes. |
| 17976 | + |
| 17977 | + Returns → drjit.llvm.ad.Bool: |
| 17978 | + An unpolarized spectral power distribution or reflectance value |
| 17979 | + |
| 17980 | + The default implementation throws an exception. |
| 17981 | + |
17956 | 17982 | .. py:method:: mitsuba.Shape.id(self) |
17957 | 17983 |
|
17958 | 17984 | Return a string identifier |
@@ -18287,25 +18313,19 @@ |
18287 | 18313 |
|
18288 | 18314 | .. py:method:: mitsuba.ShapePtr.eval_attribute(self, name, si, active=True) |
18289 | 18315 |
|
18290 | | - Evaluate a specific shape attribute at the given surface interaction. |
18291 | | - |
18292 | | - Shape attributes are user-provided fields that provide extra |
18293 | | - information at an intersection. An example of this would be a per- |
18294 | | - vertex or per-face color on a triangle mesh. |
| 18316 | + Returns whether this shape contains the specified attribute. |
18295 | 18317 |
|
18296 | 18318 | Parameter ``name`` (str): |
18297 | 18319 | Name of the attribute to evaluate |
18298 | 18320 |
|
18299 | 18321 | Parameter ``si`` (:py:obj:`mitsuba.SurfaceInteraction`): |
18300 | | - Surface interaction associated with the query |
| 18322 | + *no description available* |
18301 | 18323 |
|
18302 | 18324 | Parameter ``active`` (drjit.llvm.ad.Bool): |
18303 | 18325 | Mask to specify active lanes. |
18304 | 18326 |
|
18305 | 18327 | Returns → :py:obj:`mitsuba.Color3f`: |
18306 | | - An unpolarized spectral power distribution or reflectance value |
18307 | | - |
18308 | | - The default implementation throws an exception. |
| 18328 | + *no description available* |
18309 | 18329 |
|
18310 | 18330 | .. py:method:: mitsuba.ShapePtr.eval_attribute_1(self, name, si, active=True) |
18311 | 18331 |
|
|
18328 | 18348 | Returns → drjit.llvm.ad.Float: |
18329 | 18349 | An scalar intensity or reflectance value |
18330 | 18350 |
|
18331 | | - The default implementation throws an exception. |
18332 | | - |
18333 | 18351 | .. py:method:: mitsuba.ShapePtr.eval_attribute_3(self, name, si, active=True) |
18334 | 18352 |
|
18335 | 18353 | Trichromatic evaluation of a shape attribute at the given surface |
|
18351 | 18369 | Returns → :py:obj:`mitsuba.Color3f`: |
18352 | 18370 | An trichromatic intensity or reflectance value |
18353 | 18371 |
|
18354 | | - The default implementation throws an exception. |
18355 | | - |
18356 | 18372 | .. py:method:: mitsuba.ShapePtr.eval_parameterization(self, uv, ray_flags=14, active=True) |
18357 | 18373 |
|
18358 | 18374 | Parameterize the mesh using UV values |
|
18397 | 18413 | Returns → :py:obj:`mitsuba.ShapePtr`: |
18398 | 18414 | *no description available* |
18399 | 18415 |
|
| 18416 | + .. py:method:: mitsuba.ShapePtr.has_attribute(self, name, active=True) |
| 18417 | + |
| 18418 | + Evaluate a specific shape attribute at the given surface interaction. |
| 18419 | + |
| 18420 | + Shape attributes are user-provided fields that provide extra |
| 18421 | + information at an intersection. An example of this would be a per- |
| 18422 | + vertex or per-face color on a triangle mesh. |
| 18423 | + |
| 18424 | + Parameter ``name`` (str): |
| 18425 | + Name of the attribute |
| 18426 | + |
| 18427 | + Parameter ``si``: |
| 18428 | + Surface interaction associated with the query |
| 18429 | + |
| 18430 | + Parameter ``active`` (drjit.llvm.ad.Bool): |
| 18431 | + Mask to specify active lanes. |
| 18432 | + |
| 18433 | + Returns → drjit.llvm.ad.Bool: |
| 18434 | + An unpolarized spectral power distribution or reflectance value |
| 18435 | + |
| 18436 | + The default implementation throws an exception. |
| 18437 | + |
18400 | 18438 | .. py:method:: mitsuba.ShapePtr.interior_medium(self) |
18401 | 18439 |
|
18402 | 18440 | Return the medium that lies on the interior of this shape |
|
26098 | 26136 |
|
26099 | 26137 | Zero-initializes the internal state associated with a parameter |
26100 | 26138 |
|
| 26139 | +.. py:class:: mitsuba.ad.LargeSteps |
| 26140 | + |
| 26141 | + Implementation of the algorithm described in the paper "Large Steps in |
| 26142 | + Inverse Rendering of Geometry" (Nicolet et al. 2021). |
| 26143 | + |
| 26144 | + It consists in computing a latent variable u = (I + λL) v from the vertex |
| 26145 | + positions v, where L is the (combinatorial) Laplacian matrix of the input |
| 26146 | + mesh. Optimizing these variables instead of the vertex positions allows to |
| 26147 | + diffuse gradients on the surface, which helps fight their sparsity. |
| 26148 | + |
| 26149 | + This class builds the system matrix (I + λL) for a given mesh and hyper |
| 26150 | + parameter λ, and computes its Cholesky factorization. |
| 26151 | + |
| 26152 | + It can then convert vertex coordinates back and forth between their |
| 26153 | + cartesian and differential representations. Both transformations are |
| 26154 | + differentiable, meshes can therefore be optimized by using the differential |
| 26155 | + form as a latent variable. |
| 26156 | + |
| 26157 | + .. py:method:: __init__() |
| 26158 | + |
| 26159 | + Build the system matrix and its Cholesky factorization. |
| 26160 | + |
| 26161 | + Parameter ``verts`` (``mitsuba.Float``): |
| 26162 | + Vertex coordinates of the mesh. |
| 26163 | + |
| 26164 | + Parameter ``faces`` (``mitsuba.UInt``): |
| 26165 | + Face indices of the mesh. |
| 26166 | + |
| 26167 | + Parameter ``lambda_`` (``float``): |
| 26168 | + The hyper parameter λ. This controls how much gradients are diffused |
| 26169 | + on the surface. this value should increase with the tesselation of |
| 26170 | + the mesh. |
| 26171 | + |
| 26172 | + |
| 26173 | + |
| 26174 | + .. py:method:: mitsuba.ad.LargeSteps.to_differential() |
| 26175 | + |
| 26176 | + Convert vertex coordinates to their differential form: u = (I + λL) v. |
| 26177 | + |
| 26178 | + This method typically only needs to be called once per mesh, to obtain |
| 26179 | + the latent variable before optimization. |
| 26180 | + |
| 26181 | + Parameter ``v`` (``mitsuba.Float``): |
| 26182 | + Vertex coordinates of the mesh. |
| 26183 | + |
| 26184 | + Returns ``mitsuba.Float`: |
| 26185 | + Differential form of v. |
| 26186 | + |
| 26187 | + .. py:method:: mitsuba.ad.LargeSteps.from_differential() |
| 26188 | + |
| 26189 | + Convert differential coordinates back to their cartesian form: v = (I + |
| 26190 | + λL)⁻¹ u. |
| 26191 | + |
| 26192 | + This is done by solving the linear system (I + λL) v = u using the |
| 26193 | + previously computed Cholesky factorization. |
| 26194 | + |
| 26195 | + This method is typically called at each iteration of the optimization, |
| 26196 | + to update the mesh coordinates before rendering. |
| 26197 | + |
| 26198 | + Parameter ``u`` (``mitsuba.Float``): |
| 26199 | + Differential form of v. |
| 26200 | + |
| 26201 | + Returns ``mitsuba.Float`: |
| 26202 | + Vertex coordinates of the mesh. |
| 26203 | + |
26101 | 26204 | .. py:class:: mitsuba.ad.Optimizer |
26102 | 26205 |
|
26103 | 26206 | Base class of all gradient-based optimizers. |
|
26769 | 26872 | Compute the Multiple Importance Sampling (MIS) weight given the densities |
26770 | 26873 | of two sampling strategies according to the power heuristic. |
26771 | 26874 |
|
| 26875 | +.. py:class:: mitsuba.ad.largesteps.SolveCholesky |
| 26876 | + |
| 26877 | + DrJIT custom operator to solve a linear system using a Cholesky factorization. |
| 26878 | + |
| 26879 | + .. py:method:: mitsuba.ad.largesteps.SolveCholesky.eval() |
| 26880 | + |
| 26881 | + Evaluate the custom function in primal mode. |
| 26882 | + |
| 26883 | + The inputs will be detached from the AD graph, and the output *must* also be |
| 26884 | + detached. |
| 26885 | + |
| 26886 | + .. danger:: |
| 26887 | + |
| 26888 | + This method must be overriden, no default implementation provided. |
| 26889 | + |
| 26890 | + Returns → object: |
| 26891 | + *no description available* |
| 26892 | + |
| 26893 | + .. py:method:: mitsuba.ad.largesteps.SolveCholesky.forward() |
| 26894 | + |
| 26895 | + Evaluated forward-mode derivatives. |
| 26896 | + |
| 26897 | + .. danger:: |
| 26898 | + |
| 26899 | + This method must be overriden, no default implementation provided. |
| 26900 | + |
| 26901 | + .. py:method:: mitsuba.ad.largesteps.SolveCholesky.backward() |
| 26902 | + |
| 26903 | + Evaluated backward-mode derivatives. |
| 26904 | + |
| 26905 | + .. danger:: |
| 26906 | + |
| 26907 | + This method must be overriden, no default implementation provided. |
| 26908 | + |
| 26909 | + .. py:method:: mitsuba.ad.largesteps.SolveCholesky.name() |
| 26910 | + |
| 26911 | + Return a descriptive name of the ``CustomOp`` instance. |
| 26912 | + |
| 26913 | + The name returned by this method is used in the GraphViz output. |
| 26914 | + |
| 26915 | + If not overriden, this method returns ``"CustomOp[unnamed]"``. |
| 26916 | + |
| 26917 | +.. py:function:: mitsuba.ad.largesteps.mesh_laplacian() |
| 26918 | + |
| 26919 | + Compute the index and data arrays of the (combinatorial) Laplacian matrix of |
| 26920 | + a given mesh. |
| 26921 | + |
26772 | 26922 | .. py:function:: mitsuba.ad.reparameterize_ray(scene, rng, params, ray, num_rays=4, kappa=100000.0, exponent=3.0, antithetic=False, unroll=False, active=True) |
26773 | 26923 |
|
26774 | 26924 | Reparameterize given ray by "attaching" the derivatives of its direction to |
|
29955 | 30105 | Returns → str: |
29956 | 30106 | *no description available* |
29957 | 30107 |
|
| 30108 | +.. py:function:: mitsuba.variant_context() |
| 30109 | + |
| 30110 | + Temporarily override the active variant. Arguments are interpreted as |
| 30111 | + they are in :func:`mitsuba.set_variant`. |
| 30112 | + |
| 30113 | + Returns → None: |
| 30114 | + *no description available* |
| 30115 | + |
29958 | 30116 | .. py:function:: mitsuba.variants() |
29959 | 30117 |
|
29960 | 30118 | Return a list of all variants that have been compiled |
|
0 commit comments