# Tag Info

Accepted

### What are Jittering and Dithering

Jittering and dithering are both techniques of adding noise to reduce visible artefacts (such as banding) in an image. They solve different kinds of artefacts so they are used in different situations. ...
• 6,840

### Is there a objective reason for matrix naming conventions?

I think the naming order is intuitive because it is in reading order (left to right), e.g., worldViewProjection means that your point/direction is first multiplied by the world matrix, then the view ...
• 311
Accepted

There shouldn't be any performance penalty inherent in using a 3D group over a 2D one, the dimensions are just an aid for programmers to map invocations on to memory locations (since you can read or ...
• 2,402
Accepted

### Register pressure in Compute Shader

Lowering register pressure doesn't necessarily give you any performance boost though. I recently went through this exercise myself on GCN architectures (for a simple ray tracer) and reduced register ...
• 3,636

### Is there a objective reason for matrix naming conventions?

The order is arbitrary, but if you want to be compatible with physics textbooks then your notation is mostly set. The difference is that you seem to think that its more natural to observe the systen ...
• 8,437
Accepted

### Special directional light type

Alan Wolfe is pretty spot on, but I will sum up any way :) render the back-faces of your "unit"-sized-box, [-1;1] sample the zbuffer and transform into light-local coordinates (see our slides for a ...
• 471
Accepted

### Error with tube lighting

Found the solution, it turns out the lightVec is not the vector of light from the tube but rather the direction the tube will point. Therefore i will need to pass it a light rotation value to be used ...
Accepted

### Path tracing - cannot converge diffuse sampling + oversaturation

One point: the Lambert BRDF is not $N\cdot L$, it's just the albedo divided by pi. The $N \cdot L$ factor comes from the $\cos \theta$ in the rendering equation. So, when sampling with a cosine-...
• 25.1k
Accepted

### How to pass a 2D array to a function

Unsized arrays aren't implemented in HLSL. You can pass fixed-size arrays into functions like void foo(float2 x[2][4]) { ... } (Note the brackets go after the ...
• 25.1k

### Question about function for color

The actual color of a pixel, outputted on a monitor, does not linearly depend on the applied voltage signal for that pixel. For CRT monitors, the actual color is approximately proportional to the ...
• 1,084
Accepted

### Changing sin frequency smoothly in shader

You could go the calculus way and have an explicit rate of change that is outside your shader float frequency = getFrequency(); sineTime += frequency * deltaTime; ...
Accepted

### Unexpected results from Mitchell-Netravali

Mitchellâ€“Netravali has negative lobes, which are generally not recommended for small sample counts from what I understand; you tend to end up with both the positive and negative areas undersampled. ...
• 25.1k
Accepted

### Artifacts in omni light shadow mapping

I finally found the cause of the problem. There appears to be a problem with the shadow map of both the omni light and spotlight. While debugging, I noticed by accident that the light-view-to-light-...
• 1,084
Accepted

### Hlsl - registers type

You have to use the appropriate register type for the resource: b registers for constant buffers, t for textures, and ...
• 25.1k

### Special directional light type

I would start by looking into deferred decals (you can start here for example, this blogpost has a lot of useful links) If you understand how the positions are calculated and compared with the volume ...
• 121
Accepted

### Special Texture Stretching without deformation

The Nine Patches algorithm is a really nice and powerful solution if you are using textures but I ended up by using a fully procedural solution. I am just drawing a round box like this. ...
• 1,229

### UV Coordinate Interpolation in Compute Shader

You seem to do things more complicatedly than you need to, as adressed in the comments. What you actually want to do is simple the opposite of the normal render flow. Rather than drawing your mesh in ...
• 1,610

### Closest sphere on segment

Your actual result is correct in terms of what you can achieve in a single-pass with a fragment shader. It calculates the distance of the fragment's world position to the line segment. That distance ...
• 438
Accepted

### Using array of textures in DX12

I think what you want for this is to create a descriptor table which lists your textures. The individual textures would be created and uploaded as ordinary Texture2Ds. You'd set up the root signature ...
• 25.1k
Accepted

### How do I tell what kind of shader an hlsl shader is by looking at the code?

The real work horse shader looks to be the compute shader near the bottom of the list in this file. The other shaders which has fragment and vertex code in it is in this file. One of the first things ...
• 3,239
1 vote

### Question about function for color

Welcome to the world of 8-bit graphics! Other answers here are excellent, and most of what you need to know is described well on Wikipedia but let me take you on a human-friendly journey of ...
• 410
1 vote

### Question about function for color

Gamma correction originated as a way of correcting the output of a CRT to be a better fit for the human visual system. Modern monitors don't need to do it, but, they followed the CRT and there were ...
• 3,239
1 vote
Accepted

### Pathtracing - many bounces reduce shadows

To follow up my question and provide partial answer: First of all, I'd like to thank lightxbulb for providing comments which helped me to find solution. So here is a basic image, 4 light bounces with ...
1 vote
Accepted

### Importance sampling GGX NDF - fireflies and bright final result

I've made a few changes in my code, so let's start with basic image that I had problem we that we'll state as a problem at the beginning: After changing part of the code from: ...
1 vote
Accepted

### Worsening sampling quality of raytracing with increasing distance from world origin

Problem was that perspective matrix had very short Z_NEAR and Z_FAR values (0.01f and 200.0f). By changing it to much higher range (10.0f, 20000.0f), problem with jaggies and artifacts disappears.
1 vote
Accepted

### What is a tbuffer and what is their use case?

Keep in mind, that I'm still learning and I have no professional capacity in terms of graphics programming. So you might want to continue research with provided resources. t*#*: A register for a ...
1 vote
Accepted

### Reading from buffer versus calculating on the fly performance

My question is, though i am aware cos() and sin() is fast, how do they compare to simply getting the value precomputed in a buffer instead? This will depend on your shader code and GPU model. GPUs ...
• 242
1 vote

### Convert RGB image to YUV420 using a hlsl shader

The problem here is that you're not storing the YUV values of a pixel at the same place in the result image. What you seem to be doing is first storing the full size Y image and after that the quarter-...
• 1,610
1 vote
Accepted

### R16_FLOAT, SampleCmp and CheckFormatSupport

Because I was using the CheckFormatSupport wrong. The second parameter is supposed to be an input. Here is what it should be like. ...
• 115
1 vote

### Precision problem on AMD

In HLSL, you can use the built-in fmod function for this. I'm not sure what's going wrong with your implementation, though. It looks mathematically correct. It's ...
• 25.1k

Only top scored, non community-wiki answers of a minimum length are eligible