Realtime Dynamic GI + Reflections + AO + Emissive - AHR

hmm when I said “expect news more often” was talking about once a day or similar … not right now :wink:

Will be expecting . And thanks for your hard work a always.

Thanks for the support, to you and to all the ones that are still waiting.
I managed to get some free time, and worked on finishing the normal upsampling thing I showed earlier. No screens to show right now, sorry, but things are coming together. Performance is about 6 - 8 ms for the raytracing stage at 1080p right now! Getting solid 60 FPS at 1080p on the sponza scene, voxelizing everything every frame, but not on UE, in my test demo

Looking forward to it.

I figured out just yesterday (after messing around with my opengl vctgi engine) that to get unlimited bounces, the only thing you would need to do is to add a cone tracing pass which reads from your voxel texture within your voxelization shader, then add that indirect lighting to the direct lighting before it is voxelized. Its as simple as that - only a single voxelization pass is required so no need to duplicate any voxelization code.

I worked out something similar. The way my code work I can’t do exactly that, but have the idea on how to do something similar. Thanks for the idea!

Well, solved a major bug that was breaking my build, so working now. I still need to do a few changes to the normal upsampling thing i talked before, make it look better and be a bit faster. Will try to have screens ASAP.

That’s , I can’t wait for it. You will be one-up against VXGI because they can only do one bounce.

Well, quick update. Found out I have a problem with the way I generate the rays. While I need them to be distributed on an hemisphere oriented by the normal, the code I use to generate them has some directionality, it favors rays in a certain direction, so need to fix that. If someone has any idea, would be helpful. is the current code:



float3 dir = normal;

float3 step = dir;
		
step.x = rng.GetRandomFloat(0, 1)*2-1;
step.y = rng.GetRandomFloat(0, 1)*2-1;
step.z = rng.GetRandomFloat(0, 1);

float3 rt = 0;
float3 rbt = 0;

FindBestAxisVectors(dir,rt,rbt);

step = normalize(step.x * rbt + (step.y * rt + (step.z * dir)));


and



// From unreal engine 4, modified to compensate for axis change in UE4 (z up instead of y up)
/**
 * Find good arbitrary axis vectors to represent U and V axes of a plane,
 * given just the normal. Ported from UnMath.h
 */
void FindBestAxisVectors(float3 In, out float3 Axis1, out float3 Axis2 )
{
        In.xyz = In.xzy;
	const float3 N = abs(In);

	// Find best basis vectors.
	if( N.z > N.x && N.z > N.y )
	{
		Axis1 = float3(1, 0, 0);
	}
	else
	{
		Axis1 = float3(0, 0, 1);
	}

	Axis1 = normalize(Axis1 - In * (Axis1, In));
	Axis2 = cross(Axis1, In);

        Axis1.xyz = Axis1.xzy;
        Axis2.xyz = Axis2.xzy;
}


Are you talking about the cones? because I manually specify which direction mine go - is with 5 cones for diffuse (which is sufficient for quality).


	iDiffuse += coneTrace(voxPos.xyz, bumpN, iConeRatio, iMaxDist);
	iDiffuse += 0.707*coneTrace(voxPos.xyz, tangent, iConeRatio, iMaxDist);
	iDiffuse += 0.707*coneTrace(voxPos.xyz, binorm, iConeRatio, iMaxDist);
	iDiffuse += 0.707*coneTrace(voxPos.xyz, ntangent, iConeRatio, iMaxDist);
	iDiffuse += 0.707*coneTrace(voxPos.xyz, nbinorm, iConeRatio, iMaxDist);

No, i’m talking about rays, need to generate random rays in the hemisphere aligned with the normal, to compute illumination for the pixel

Well, that still needs to be fixed, but think I’m close. Now that Epic released 4.7, i’ll get into updating to 4.7, fixing the bugs that could/would appear, and then make the branch public, cause if I keep trying to polish it the “beta” would end up being the final release. If everything goes according to the plan, i’ll have the beta up weekend. Bare in mind that it will be a BETA, so there will be things to fix, no reflections and no multiple bounces. Just don’t want to make people wait more.

Saluting the beta with gunshots ! :smiley:

I’Ll try the hell out of hell and will try to give back nice feedback. Hope to see that becoming a real game-changer soon.

Thanks man! weekend might have been too optimistic, but will be at most out next weekend.

Well, sorry for the lack of updates, been working a project for a guy from the forums. Started the update to 4.7
Was quite seamless, but they changed a bit the rendering code so need to make some modifications. Luckily nothing big. The project i mentioned is taking a good share of my time, and college starts over tomorrow, but I will still find some spare time and work on . Want to make it public ASAP

man can’t wait to see that updates with 4.7 and the progress. Also possible beta is sounding. I am liking the rendering in 4.7 seems they have tweaked it a lot and I am happy about that.

Possible not, I’m gonna do it! (Eventually… :wink: )

Hahah . Sorry I just noticed my sentence was a bit off. I am still waking up and have a zillion things going on in my mind right now lol. Don’t mind me! :smiley:

Haha no problem, know that feeling bro :wink:

Sorry for delaying . I’m really sorry, but the job I took has been longer that I expect. Trying to finish it asap though. After that, I should have the time to make all public. Once again, sorry for the delays

Hey , any updates?