That only makes sense if you let the emitter area increase unbounded but physical devices are bounded in area so it doesn't make sense to think in those terms.
-= Dave
Not Telling
David Neubelt hasn't added any contacts yet.
Posted by David Neubelt
on 08 May 2013 - 02:06 AM
That only makes sense if you let the emitter area increase unbounded but physical devices are bounded in area so it doesn't make sense to think in those terms.
-= Dave
Posted by David Neubelt
on 18 April 2013 - 06:25 PM
As an aside, the whole 'dot product' notation here is actually mathematically correct, but really confusing for beginners since most people tend to associate it with directions and angles. There are actually no 'directions' involved in SH, since wah waaah wahh wahh wahh frequency domain. You're just multiplying the coefficients and adding the results as you go. Pick apart a dot product, and, hey, there's the same operations.
The basis functions are parameterized in spherical coordinates where the parameters represent a direction.
Personally, I like to think along the same lines that Ashaman73 does as it gives me an easy mental framework to reason about SH with.
I think it's very intuitive to think of SH as a set of lobes in a fixed set of directions. Each basis function adds another set of directions that you can project your signal onto. The directions represent the input angles to the basis function that produce the global maxima's of the polynomal. The spacing between the maxima's represent the resolution of the signal you can represent.
-= Dave
Posted by David Neubelt
on 17 February 2013 - 02:12 AM
I was looking at the UE4 pdf for ideas on how to get trajectories and external effects(winds,explosions) to affect my particles(which I currently run on a compute shader) http://www.unrealengine.com/files/misc/The_Technology_Behind_the_Elemental_Demo_16x9_(2).pdf In the Particles section they say they use "Particle Curves to modulate particle attributes* (1D lookup)",so I guess they somehow store the trajectory in a 1D texture?How would one go about encoding the trajectory data in a texture?The second thing I didn't quite get is about the Vector Fields "Additional forces from Vector Fields* (3D lookup)" - I'm completely lost here,are they storing all vector fields in the current scene in some volume texture and then in the compute shader for each particle checking for interactions with all "Vector Fields" in the volume?They also mention "Affect all particle systems globally or a single system",so there must be some indexing going on.
If you need external forces to affect your particles then just pass it as a uniform to your compute shader. If you need localized effects then you can have an array of N effectors that you pass to the shader. If you want to have complex and localized external forces then you have to store it in a 3d grid.
The curves they are talking about is to allow for time varying attributes (e.g. color over life of the particle, or speed over life of the particle).
Finally, the vector fields are vector fields that are divergent free (there are no set of vectors that will make the particle get stuck at a point). Most 3d packages that support particle simulation use an approximation called curl-noise which maintains the divergent free property without having to resort to a 3d fluid simulation. However, they also support more complicated simulations as well that can export these fields. These vector fields can either be generated directly in your engine or imported from popular 3d packages.
No matter what source you use it just controls the motion of the particle at a point in space. In particular, it seems that UE4 allows it to control either the velocity or acceleration.
-= Dave
Posted by David Neubelt
on 13 February 2013 - 01:01 AM
Typically, you have more information then one image.
If you have two images from different viewpoints then you can reconstruct depth and from depth you can integrate depth to get normal information.
If you have one image and you can determine the light direction (via shadows) then you can determine normals via n.l*p = I (p is albedo and I is intensity of the image)
If you have multiple images from one (the same) viewpoint and multiple known light directions then you can reconstruct the light direction using the previous technique and a least squares regression. Additionally, you can use expectation maximization or other non-linear solvers. The term to search for is photometric stereo.
Lastly, if you can have user input and one image and have the user pick highlights then you can try to determine the light direction and then reconstruct normals.
-= Dave
Posted by David Neubelt
on 31 July 2012 - 02:05 PM
Posted by David Neubelt
on 03 March 2012 - 03:23 AM
No - I was just trying to give an example of how you can use wavelets with radiosity.Are you saying calculate it like it's normal radiosity?
Spherical harmonics are one set of basis functions and haar is another, h-basis, fourier, etc..When you say they are storing coefficients in angular dimensions, are you talking about a spherical harmonic?
Posted by David Neubelt
on 02 March 2012 - 04:49 PM
Posted by David Neubelt
on 05 December 2011 - 04:08 PM
Nice read!
I would love to see MJP's updated Error Statistics after YogurtEmperor's fixes to the algorithm.
Also, have you guys tried to compute the optimal/global minimum for this problem by brute-forcing through all relevant possibilities for the compression? (minus any obvious pruning of the search space to make it feasible to brute force) Having the global minimum SNR-wise in MJP's statistics would be a nice addition, to be able to estimate how far these algorithms go from the optimal. Of course that doesn't necessarily give the best perceptual result, but having a good raw number for the lower bound is useful when estimating how far it's possible to improve.
Posted by David Neubelt
on 10 May 2011 - 01:54 AM
Find content