RichieSams
• Member for 6 years, 5 months
• Last seen more than a week ago

Short answer: Importance sampling is a method to reduce variance in Monte Carlo Integration by choosing an estimator close to the shape of the actual function. PDF is an abbreviation for Probability ...

In order to understand Russian Roulette, let's look at a very basic backward path tracer: void RenderPixel(uint x, uint y, UniformSampler *sampler) { Ray ray = m_scene->Camera....

To start, I highly suggest reading Naty Hoffman's Siggraph presentation covering the physics of rendering. That said, I will try to answer your specific questions, borrowing images from his ...

There are multiple areas in path tracing that can be importance sampled. In addition, each of those areas can also use Multiple Importance Sampling, first proposed in Veach and Guibas's 1995 paper. To ...

Assuming you mean a camera that rotates based on mouse movement: One way to implement it is to keep track of the camera position and its rotation in space. Spherical coordinates happen to be ...

Virtual Texturing is the logical extreme of texture atlases. A texture atlas is a single giant texture that contains textures for individual meshes inside it: Texture atlases became popular due to ...

The main purpose of tesselation is to increase the resolution of the mesh, while only transferring a small amount of triangle data around. In addition, tessellation allows you to dynamically change ...

If the surfaces are exactly co-planer, your fate is up to the FPU gods; you'll more than likely have Z-fighting. If the triangles are identical and you do the exact same math to each, you will end up ...

Using an 'ambient light' term in your lighting calculations is an approximation of the indirect light reflected around the scene. Usually it's up to the artist to choose an appropriate value. There ...

In Schlick's 1994 paper, "An Inexpensive Model for Physically-Based Rendering", where they derive the approximation, the formula is: F_{\lambda}(u) = f_{\lambda} + (1 - f_{\lambda})(1 - u)^...

As mentioned in the comments, I would highly suggest starting with Full Volumetric Scattering. This is two fold: Since you are doing path tracing, adding volumetrics isn't super difficult. Fully ...

As mentioned in this answer, Physically-Based Rendering isn't a set number of things. It's a concept. It's akin to saying something is 'Environmentally Friendly'. There are many different techniques ...

Firstly, as @trichoplax correctly pointed out, your randomPoint function calculates a point in a cube, then uses rejection sampling to return all points that are inside a unit sphere. In order to ...

Short answer: Yes, but it won't be pretty. Explaination: While there are algorithms to automagically UV map polygon soup, the mapping probably wont be ideal. UV mapping is an art really. Choosing ...

In a traditional camera, the photons from the scene travel through the lens of the camera, then hit the sensor at the focal length. A consequence of the lens is that the image is upside down and ...

Firstly, I highly suggest reading Eric Heitz's paper "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs", which covers the full derivation of microfacet-based BRDFs. The \$\frac{...

The MATLab data file has 3 arrays Input vector - aka, the light source (In Cartesian coordinates) Output vector - aka, the eye (Also in Cartesian coordinates) Spectral data (spectral data is ...

I'm not quite sure I fully understand the problem, this is what I think you're asking: You start with a set of rays pointing a all sorts of directions You want to know which of these rays intersect ...

Traditionally, there are two ways to display something on the screen: Re-draw it from scratch every frame (or, every time something changes) Track the sections of the screen (ie. "dirty rectangles") ...

IMO, a variation of your second approach is going to be the simplest, and could be quite fast. Have you profiled anything yet? A CPU should chew through 10000 matrix multiplications extremely quickly....