RichieSams
  • Member for 6 years, 5 months
  • Last seen more than a week ago
What is Importance Sampling?
Accepted answer
59 votes

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 ...

View answer
Is Russian Roulette really the answer?
30 votes

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....

View answer
How physically-based is the diffuse and specular distinction?
Accepted answer
29 votes

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 ...

View answer
Progressive Path Tracing with Explicit Light Sampling
Accepted answer
24 votes

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 ...

View answer
How to implement a trackball in OpenGL?
Accepted answer
17 votes

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 ...

View answer
How can virtual texturing actually be efficient?
13 votes

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 ...

View answer
Why did tessellation come to be a prominent feature?
11 votes

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 ...

View answer
Avoiding z-fighting with coincident surfaces
11 votes

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 ...

View answer
Formula for the ambient light intensity of a scene?
10 votes

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 ...

View answer
In a physically based BRDF, what vector should be used to compute the Fresnel coefficient?
Accepted answer
9 votes

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)^...

View answer
A recent approach for subsurface scattering
Accepted answer
9 votes

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 ...

View answer
Does PBR incur a performance penalty by design?
Accepted answer
8 votes

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 ...

View answer
Role of PDF of Uniform Random Sampling in a path tracer
Accepted answer
7 votes

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 ...

View answer
Automatic generation of UV maps
7 votes

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 ...

View answer
Ray tracing with thin lens camera
5 votes

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 ...

View answer
What is the effect of the BRDF denominator?
4 votes

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{...

View answer
Ray tracing - BRDF using Cornell measured spectral data
3 votes

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 ...

View answer
Can I accelerate rendering an image from a ray cloud using a GPU?
Accepted answer
3 votes

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 ...

View answer
Blit and scroll
2 votes

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") ...

View answer
OpenGL Instanced Rendering with Level of Detail
Accepted answer
1 votes

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....

View answer
Is there a performance implication if the frame buffer resolution and the physical screen resolution are different?
1 votes

This is the screen's video scaler module. Essentially, it is a dedicated piece of silicon that allows the user to use non-native screen resolutions.

View answer
How to capture rendered frames from an application and stream over network
1 votes

I think you're confused on how rendering and animation work. A traditional model is nothing more than a bunch of triangles. So a model file coming from say Blender, etc. is just a list of vertices ...

View answer