Bind correct default resource type in GI
This commit is contained in:
parent
99df193bea
commit
ba39230ef3
3 changed files with 37 additions and 4 deletions
|
@ -3322,7 +3322,11 @@ void GI::init(RendererSceneSkyRD *p_sky) {
|
||||||
RD::Uniform u;
|
RD::Uniform u;
|
||||||
u.uniform_type = RD::UNIFORM_TYPE_TEXTURE;
|
u.uniform_type = RD::UNIFORM_TYPE_TEXTURE;
|
||||||
u.binding = 0;
|
u.binding = 0;
|
||||||
|
if (p_sky->sky_use_cubemap_array) {
|
||||||
|
u.append_id(texture_storage->texture_rd_get_default(RendererRD::DEFAULT_RD_TEXTURE_CUBEMAP_ARRAY_WHITE));
|
||||||
|
} else {
|
||||||
u.append_id(texture_storage->texture_rd_get_default(RendererRD::DEFAULT_RD_TEXTURE_CUBEMAP_WHITE));
|
u.append_id(texture_storage->texture_rd_get_default(RendererRD::DEFAULT_RD_TEXTURE_CUBEMAP_WHITE));
|
||||||
|
}
|
||||||
uniforms.push_back(u);
|
uniforms.push_back(u);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
|
@ -191,7 +191,7 @@ TextureStorage::TextureStorage() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{ //create default cubemap
|
{ //create default black cubemap array
|
||||||
|
|
||||||
RD::TextureFormat tformat;
|
RD::TextureFormat tformat;
|
||||||
tformat.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
|
tformat.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
|
||||||
|
@ -219,7 +219,35 @@ TextureStorage::TextureStorage() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{ //create default cubemap array
|
{ //create default white cubemap array
|
||||||
|
|
||||||
|
RD::TextureFormat tformat;
|
||||||
|
tformat.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
|
||||||
|
tformat.width = 4;
|
||||||
|
tformat.height = 4;
|
||||||
|
tformat.array_layers = 6;
|
||||||
|
tformat.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT;
|
||||||
|
tformat.texture_type = RD::TEXTURE_TYPE_CUBE_ARRAY;
|
||||||
|
|
||||||
|
Vector<uint8_t> pv;
|
||||||
|
pv.resize(16 * 4);
|
||||||
|
for (int i = 0; i < 16; i++) {
|
||||||
|
pv.set(i * 4 + 0, 255);
|
||||||
|
pv.set(i * 4 + 1, 255);
|
||||||
|
pv.set(i * 4 + 2, 255);
|
||||||
|
pv.set(i * 4 + 3, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
Vector<Vector<uint8_t>> vpv;
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
vpv.push_back(pv);
|
||||||
|
}
|
||||||
|
default_rd_textures[DEFAULT_RD_TEXTURE_CUBEMAP_ARRAY_WHITE] = RD::get_singleton()->texture_create(tformat, RD::TextureView(), vpv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{ //create default black cubemap
|
||||||
|
|
||||||
RD::TextureFormat tformat;
|
RD::TextureFormat tformat;
|
||||||
tformat.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
|
tformat.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
|
||||||
|
@ -247,7 +275,7 @@ TextureStorage::TextureStorage() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{ //create default cubemap white array
|
{ //create default white cubemap
|
||||||
|
|
||||||
RD::TextureFormat tformat;
|
RD::TextureFormat tformat;
|
||||||
tformat.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
|
tformat.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
|
||||||
|
|
|
@ -48,6 +48,7 @@ enum DefaultRDTexture {
|
||||||
DEFAULT_RD_TEXTURE_CUBEMAP_BLACK,
|
DEFAULT_RD_TEXTURE_CUBEMAP_BLACK,
|
||||||
DEFAULT_RD_TEXTURE_CUBEMAP_ARRAY_BLACK,
|
DEFAULT_RD_TEXTURE_CUBEMAP_ARRAY_BLACK,
|
||||||
DEFAULT_RD_TEXTURE_CUBEMAP_WHITE,
|
DEFAULT_RD_TEXTURE_CUBEMAP_WHITE,
|
||||||
|
DEFAULT_RD_TEXTURE_CUBEMAP_ARRAY_WHITE,
|
||||||
DEFAULT_RD_TEXTURE_3D_WHITE,
|
DEFAULT_RD_TEXTURE_3D_WHITE,
|
||||||
DEFAULT_RD_TEXTURE_3D_BLACK,
|
DEFAULT_RD_TEXTURE_3D_BLACK,
|
||||||
DEFAULT_RD_TEXTURE_2D_ARRAY_WHITE,
|
DEFAULT_RD_TEXTURE_2D_ARRAY_WHITE,
|
||||||
|
|
Loading…
Reference in a new issue