steaklive / dxr-sandbox-gi Goto Github PK
View Code? Open in Web Editor NEWSimple DirectX 12 toy framework for testing Global Illumination: Reflective Shadow Mapping, Light Propagation Volume, Voxel Cone Tracing, DXR
Simple DirectX 12 toy framework for testing Global Illumination: Reflective Shadow Mapping, Light Propagation Volume, Voxel Cone Tracing, DXR
Switch to degrees in Slider3
some samplers are crashing on integrated vega 8
Good morning !
It's me again.and this time I have these questions...
auto sample = reinterpret_cast<DXRSExampleGIScene*>(GetWindowLongPtr(hWnd, GWLP_USERDATA));
in
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
meaningful?
because the gsample is already a global value. I can predict the meaning of it is to be more OOP,and so that we can be more portability
we have a VSOnlyMain
function,and I can't understand result.z *= result.w;
I guess the Hardware will do xyz/w for us ,after we output the float4
to be honest I don't know what situation will do xyz/w. I guess it will be done when use SV_position instead of Target0?
what we do? we put all RSM texels into LPV volume, in the program, is 2048*2048 into 32*32*32
it's obvious that the volume count is not enough,and this will lead to :
in the volume the old value will be coverd by new value ,because there must be two texels in one volume.
So I do a thing just like what you have done in propagation: Blend ! But the result is not so ideal
there is no indirect light!
please see the comparation, the below one is your right answer ,the up one is my wrong answer
Thank you for your project. Without your project I will be breakdown,the Chinese toturial of DX12 is too rare
And I choose DX12 instead of OpenGL in mistake.The beginner should choose OpenGL better I think . because In my area, undergraduate don't have time to waste for DX12.It's too hard I think . and to find a work ,you just need OpenGL then your choice will be more.... I still have no offer T_T
And I will write a toturial about your project,For all DX12 Novice. I think then they may be easier to learn.
At last , Thank you very much!,and I feel sorry to occupy your time
currently, GPU handles have NULL pointers
Sorry,it's my first time to use github,i don't know what the comment will affect you .
but i have some questions about it .In LPVpropagation.hlsl
VS_OUT VSMain(VS_IN input)
{
VS_OUT output = (VS_OUT) 0;
if (input.vertex == 0)
output.screenPos.xy = float2(-1.0, 1.0);
else if (input.vertex == 1)
output.screenPos.xy = float2(3.0, 1.0);
else
output.screenPos.xy = float2(-1.0, -3.0);
output.screenPos.zw = float2(0.0, 1.0);
output.depthIndex = input.depthIndex;
return output;
}
[maxvertexcount(3)]
void GSMain(triangle VS_OUT input[3], inout TriangleStream<GS_OUT> OutputStream)
{
for (int i = 0; i < 3; i++)
{
GS_OUT output = (GS_OUT)0;
output.depthIndex = input[i].depthIndex;
output.screenPos = input[i].screenPos;
OutputStream.Append(output);
}
}
PS_OUT PSMain(GS_OUT input)
{
PS_OUT output = (PS_OUT) 0;
int4 cellIndex = int4(input.screenPos.xy - 0.5f, input.depthIndex, 0);
SHContribution resultContribution = GetSHGatheringContribution(cellIndex);
output.redSH = resultContribution.red;
output.greenSH = resultContribution.green;
output.blueSH = resultContribution.blue;
output.acc_redSH = resultContribution.red;
output.acc_greenSH = resultContribution.green;
output.acc_blueSH = resultContribution.blue;
return output;
}
i don't know why the value of screenPos is [-1,3] and whatever any small counts,and then
I open renderdoc,I saw it became [0-32] when i open any pixel's debugging.
there is no change for screenPos,the 32 Instance have the same screenpos,how can i identify 323232 volume for only one depthIndex
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.