Fix null world
This commit is contained in:
parent
3cca3ffbf3
commit
7ac97b638e
|
@ -56,9 +56,6 @@ vec4 traceCone(sampler3D voxels, vec3 origin, vec3 dir, const float aperture, co
|
|||
float mip = max(log2(diam * voxelgiResolution.x), 0);
|
||||
// vec4 mipSample = sampleVoxel(samplePos, dir, indices, mip);
|
||||
vec4 mipSample = textureLod(voxels, samplePos * 0.5 + 0.5, mip);
|
||||
#ifdef _VoxelGIEmission
|
||||
mipSample.rgb = min(mipSample.rgb * 0.9, vec3(0.9)) + max((mipSample.rgb - 0.9) * 200.0, 0.0); // Higher range to allow emission
|
||||
#endif
|
||||
// Blend mip sample with current sample color
|
||||
sampleCol += (1 - sampleCol.a) * mipSample;
|
||||
dist += max(diam / 2, VOXEL_SIZE); // Step size
|
||||
|
|
|
@ -48,91 +48,111 @@ class Uniforms {
|
|||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.A.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.A.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.A.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.A.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.A.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.A.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekB") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.B.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.B.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.B.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.B.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.B.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.B.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekC") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.C.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.C.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.C.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.C.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.C.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.C.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekD") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.D.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.D.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.D.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.D.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.D.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.D.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekE") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.E.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.E.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.E.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.E.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.E.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.E.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekF") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.F.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.F.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.F.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.F.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.F.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.F.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekG") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.G.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.G.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.G.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.G.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.G.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.G.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekH") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.H.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.H.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.H.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.H.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.H.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.H.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekI") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.I.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.I.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.I.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.I.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.I.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.I.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_hosekZ") {
|
||||
if (armory.renderpath.HosekWilkie.data == null) {
|
||||
armory.renderpath.HosekWilkie.init(Scene.active.world);
|
||||
}
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.Z.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.Z.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.Z.z;
|
||||
if (armory.renderpath.HosekWilkie.data != null) {
|
||||
v = iron.object.Uniforms.helpVec;
|
||||
v.x = armory.renderpath.HosekWilkie.data.Z.x;
|
||||
v.y = armory.renderpath.HosekWilkie.data.Z.y;
|
||||
v.z = armory.renderpath.HosekWilkie.data.Z.z;
|
||||
}
|
||||
}
|
||||
else if (clink == "_cameraPositionSnap") {
|
||||
#if arm_voxelgi
|
||||
|
|
|
@ -116,6 +116,7 @@ class HosekWilkie {
|
|||
}
|
||||
|
||||
public static function init(world:WorldData) {
|
||||
if (world == null || world.raw.sun_direction == null) return;
|
||||
var dir = world.raw.sun_direction;
|
||||
sunDirection = new FastVector3(dir[0], -dir[1], dir[2]);
|
||||
|
||||
|
|
|
@ -100,8 +100,6 @@ def add_world_defs():
|
|||
if rpdat.arm_voxelgi_refraction:
|
||||
wrd.world_defs += '_VoxelGIDirect'
|
||||
wrd.world_defs += '_VoxelGIRefract'
|
||||
if rpdat.arm_voxelgi_emission:
|
||||
wrd.world_defs += '_VoxelGIEmission'
|
||||
if rpdat.rp_voxelgi_relight:
|
||||
assets.add_khafile_def('rp_voxelgi_relight')
|
||||
elif voxelao:
|
||||
|
|
|
@ -511,7 +511,6 @@ class ArmRPListItem(bpy.types.PropertyGroup):
|
|||
# arm_voxelgi_anisotropic = BoolProperty(name="Anisotropic", description="Use anisotropic voxels", default=False, update=update_renderpath)
|
||||
arm_voxelgi_shadows = BoolProperty(name="Trace Shadows", description="Use voxels to render shadows", default=False, update=update_renderpath)
|
||||
arm_voxelgi_refraction = BoolProperty(name="Trace Refraction", description="Use voxels to render refraction", default=False, update=update_renderpath)
|
||||
arm_voxelgi_emission = BoolProperty(name="Emission Voxels", description="Encode emission into voxelized data", default=False, update=update_renderpath)
|
||||
arm_samples_per_pixel = EnumProperty(
|
||||
items=[('1', '1', '1'),
|
||||
('2', '2', '2'),
|
||||
|
|
Loading…
Reference in a new issue