-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KTX2 integration -- Dropping support for KTX #9040
Changes from 6 commits
bb98300
3fb2094
94a8081
d5b3893
f47b6d5
bf5bc7b
04e58bf
f808f11
b03dc27
fda4f2f
6dda57e
cf3d392
b3c83f3
008e5ef
d4a02b7
fdfa914
6358371
19e9247
a66e5e0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
{ | ||
"asset": { | ||
"version": "1.0" | ||
}, | ||
"geometricError": 70, | ||
"root": { | ||
"transform": [ | ||
-0.8608332815512961, | ||
-0.026091425783012157, | ||
-0.5082177671768633, | ||
0, | ||
0.324224005982592, | ||
-0.7978680937788927, | ||
-0.5082177671768631, | ||
0, | ||
-0.39223061496806577, | ||
-0.6022671686471426, | ||
0.6952908760019272, | ||
0, | ||
-2506152.030937531, | ||
-3848177.6543499078, | ||
4412811.205275625, | ||
1 | ||
], | ||
"refine": "REPLACE", | ||
"boundingVolume": { | ||
"sphere": [ | ||
0, | ||
0, | ||
0, | ||
100 | ||
] | ||
}, | ||
"geometricError": 0, | ||
"content": { | ||
"uri": "Balloon.b3dm" | ||
} | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -66,13 +66,10 @@ | |
} | ||
|
||
var environmentMapURL = | ||
"https://cesium.com/assets/kiara_6_afternoon_2k_ibl.ktx"; | ||
"../../SampleData/EnvironmentMap/kiara_6_afternoon_2k_ibl.ktx2"; | ||
var modelURL = "../../SampleData/models/Pawns/Pawns.glb"; | ||
|
||
// This environment map was processed using Google's Filament project. To process your own: | ||
// 1 - Download the Filament release (https://github.com/google/filament/releases). | ||
// 2 - Run `cmgen --type=ktx --deploy=/path/to/output /path/to/image.hdr`. Other formats are also supported. Run `cmgen --help` for all options. | ||
// 3 - Take the generated coefficients and the KTX file and load them in CesiumJS as shown below. | ||
// This environment map was processed using Google's Filament project. | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are these instructions out of date/not working? One problem we had when initially creating this Sandcastle is it was completely opaque what all these coefficients meant, or how to get your own. The user was never supposed to do this process manually. The glTF IBL extension just wasn't ready at the time. But now it is: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_lights_image_based#ext_lights_image_based. This example can be greatly simplified into essentially one line if we just add support for that extension. I would suggest we do that (not necessarily in this PR, open an issue for it?), and/or just remove this example because it isn't very useful to Cesium users as-is. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, Google's Filament hasn't been updated to support KTX2. I had to rebuild this cubemap by using this website, which gave six PNG images, which I then had adjust the opacity of and then convert to KTX2 using the command line tool from this repo. We could always open up an issue to build a tool that automates this? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. One limitation of using There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes. It's critical for users to be able to select their own HDR, IBL environments. Can't expect ordinary models to bundle them. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would most users know how to/want to manually specify the 9 coefficients as shown here? That was the part I was thinking we could omit from this sandcastle, and fallback to the procedural. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you fall back to procedural, the diffuse lighting on the model won't match the specular lighting environment, which is not what a user who cares about lighting environments is going to want to see. That said, I'm no fan of manually specifying spherical harmonics in code, that seems ridiculous and error-prone. But is the alternative to force all users to always accept a default procedural diffuse lighting environment? By comparison, BabylonJS stores pre-filtered lighting environments in In ThreeJS, they can now load I like the KTX file, but it looks like the file is only storing the pre-filtered specular lighting environment, and dumping out the diffuse as a bunch of SH coefficients for users to deal with separately. Unless maybe KTX2 has some way to include the diffuse environment as well? Ideally there should be a standard environment format that includes both. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've been working on the VSCode glTF preview, trying to get nice IBLs in all the preview windows, and it would be nice to include Cesium in this too. In this commit I hacked up a little There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Watching a Virtual SIGGRAPH presentation on Filament (Moving Mobile Graphics, ~2:28:00). Romain says they're not using spherical harmonics at all anymore. Instead, they stop the specular IBL mipmaps at 16x16 smallest size with roughness == 1.0 at that size, and they re-use that particular mip level as their diffuse IBL. I think Cesium should do that too, and ditch the SH coefficients. |
||
var L00 = new Cesium.Cartesian3( | ||
0.170455150831422, | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,287 @@ | ||
/** | ||
* Enum containing Vulkan Constant values by name. | ||
* for use when needing VK Formats | ||
YVin3D marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* | ||
* These match the constants from the [Vulkan 1.2]{@link https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-definition} | ||
* specifications. | ||
* | ||
* @exports VulkanConstants | ||
YVin3D marked this conversation as resolved.
Show resolved
Hide resolved
|
||
*/ | ||
YVin3D marked this conversation as resolved.
Show resolved
Hide resolved
|
||
var VulkanConstants = { | ||
VK_FORMAT_UNDEFINED: 0, | ||
VK_FORMAT_R4G4_UNORM_PACK8: 1, | ||
VK_FORMAT_R4G4B4A4_UNORM_PACK16: 2, | ||
VK_FORMAT_B4G4R4A4_UNORM_PACK16: 3, | ||
VK_FORMAT_R5G6B5_UNORM_PACK16: 4, | ||
VK_FORMAT_B5G6R5_UNORM_PACK16: 5, | ||
VK_FORMAT_R5G5B5A1_UNORM_PACK16: 6, | ||
VK_FORMAT_B5G5R5A1_UNORM_PACK16: 7, | ||
VK_FORMAT_A1R5G5B5_UNORM_PACK16: 8, | ||
VK_FORMAT_R8_UNORM: 9, | ||
VK_FORMAT_R8_SNORM: 10, | ||
VK_FORMAT_R8_USCALED: 11, | ||
VK_FORMAT_R8_SSCALED: 12, | ||
VK_FORMAT_R8_UINT: 13, | ||
VK_FORMAT_R8_SINT: 14, | ||
VK_FORMAT_R8_SRGB: 15, | ||
VK_FORMAT_R8G8_UNORM: 16, | ||
VK_FORMAT_R8G8_SNORM: 17, | ||
VK_FORMAT_R8G8_USCALED: 18, | ||
VK_FORMAT_R8G8_SSCALED: 19, | ||
VK_FORMAT_R8G8_UINT: 20, | ||
VK_FORMAT_R8G8_SINT: 21, | ||
VK_FORMAT_R8G8_SRGB: 22, | ||
VK_FORMAT_R8G8B8_UNORM: 23, | ||
VK_FORMAT_R8G8B8_SNORM: 24, | ||
VK_FORMAT_R8G8B8_USCALED: 25, | ||
VK_FORMAT_R8G8B8_SSCALED: 26, | ||
VK_FORMAT_R8G8B8_UINT: 27, | ||
VK_FORMAT_R8G8B8_SINT: 28, | ||
VK_FORMAT_R8G8B8_SRGB: 29, | ||
VK_FORMAT_B8G8R8_UNORM: 30, | ||
VK_FORMAT_B8G8R8_SNORM: 31, | ||
VK_FORMAT_B8G8R8_USCALED: 32, | ||
VK_FORMAT_B8G8R8_SSCALED: 33, | ||
VK_FORMAT_B8G8R8_UINT: 34, | ||
VK_FORMAT_B8G8R8_SINT: 35, | ||
VK_FORMAT_B8G8R8_SRGB: 36, | ||
VK_FORMAT_R8G8B8A8_UNORM: 37, | ||
VK_FORMAT_R8G8B8A8_SNORM: 38, | ||
VK_FORMAT_R8G8B8A8_USCALED: 39, | ||
VK_FORMAT_R8G8B8A8_SSCALED: 40, | ||
VK_FORMAT_R8G8B8A8_UINT: 41, | ||
VK_FORMAT_R8G8B8A8_SINT: 42, | ||
VK_FORMAT_R8G8B8A8_SRGB: 43, | ||
VK_FORMAT_B8G8R8A8_UNORM: 44, | ||
VK_FORMAT_B8G8R8A8_SNORM: 45, | ||
VK_FORMAT_B8G8R8A8_USCALED: 46, | ||
VK_FORMAT_B8G8R8A8_SSCALED: 47, | ||
VK_FORMAT_B8G8R8A8_UINT: 48, | ||
VK_FORMAT_B8G8R8A8_SINT: 49, | ||
VK_FORMAT_B8G8R8A8_SRGB: 50, | ||
VK_FORMAT_A8B8G8R8_UNORM_PACK32: 51, | ||
VK_FORMAT_A8B8G8R8_SNORM_PACK32: 52, | ||
VK_FORMAT_A8B8G8R8_USCALED_PACK32: 53, | ||
VK_FORMAT_A8B8G8R8_SSCALED_PACK32: 54, | ||
VK_FORMAT_A8B8G8R8_UINT_PACK32: 55, | ||
VK_FORMAT_A8B8G8R8_SINT_PACK32: 56, | ||
VK_FORMAT_A8B8G8R8_SRGB_PACK32: 57, | ||
VK_FORMAT_A2R10G10B10_UNORM_PACK32: 58, | ||
VK_FORMAT_A2R10G10B10_SNORM_PACK32: 59, | ||
VK_FORMAT_A2R10G10B10_USCALED_PACK32: 60, | ||
VK_FORMAT_A2R10G10B10_SSCALED_PACK32: 61, | ||
VK_FORMAT_A2R10G10B10_UINT_PACK32: 62, | ||
VK_FORMAT_A2R10G10B10_SINT_PACK32: 63, | ||
VK_FORMAT_A2B10G10R10_UNORM_PACK32: 64, | ||
VK_FORMAT_A2B10G10R10_SNORM_PACK32: 65, | ||
VK_FORMAT_A2B10G10R10_USCALED_PACK32: 66, | ||
VK_FORMAT_A2B10G10R10_SSCALED_PACK32: 67, | ||
VK_FORMAT_A2B10G10R10_UINT_PACK32: 68, | ||
VK_FORMAT_A2B10G10R10_SINT_PACK32: 69, | ||
VK_FORMAT_R16_UNORM: 70, | ||
VK_FORMAT_R16_SNORM: 71, | ||
VK_FORMAT_R16_USCALED: 72, | ||
VK_FORMAT_R16_SSCALED: 73, | ||
VK_FORMAT_R16_UINT: 74, | ||
VK_FORMAT_R16_SINT: 75, | ||
VK_FORMAT_R16_SFLOAT: 76, | ||
VK_FORMAT_R16G16_UNORM: 77, | ||
VK_FORMAT_R16G16_SNORM: 78, | ||
VK_FORMAT_R16G16_USCALED: 79, | ||
VK_FORMAT_R16G16_SSCALED: 80, | ||
VK_FORMAT_R16G16_UINT: 81, | ||
VK_FORMAT_R16G16_SINT: 82, | ||
VK_FORMAT_R16G16_SFLOAT: 83, | ||
VK_FORMAT_R16G16B16_UNORM: 84, | ||
VK_FORMAT_R16G16B16_SNORM: 85, | ||
VK_FORMAT_R16G16B16_USCALED: 86, | ||
VK_FORMAT_R16G16B16_SSCALED: 87, | ||
VK_FORMAT_R16G16B16_UINT: 88, | ||
VK_FORMAT_R16G16B16_SINT: 89, | ||
VK_FORMAT_R16G16B16_SFLOAT: 90, | ||
VK_FORMAT_R16G16B16A16_UNORM: 91, | ||
VK_FORMAT_R16G16B16A16_SNORM: 92, | ||
VK_FORMAT_R16G16B16A16_USCALED: 93, | ||
VK_FORMAT_R16G16B16A16_SSCALED: 94, | ||
VK_FORMAT_R16G16B16A16_UINT: 95, | ||
VK_FORMAT_R16G16B16A16_SINT: 96, | ||
VK_FORMAT_R16G16B16A16_SFLOAT: 97, | ||
VK_FORMAT_R32_UINT: 98, | ||
VK_FORMAT_R32_SINT: 99, | ||
VK_FORMAT_R32_SFLOAT: 100, | ||
VK_FORMAT_R32G32_UINT: 101, | ||
VK_FORMAT_R32G32_SINT: 102, | ||
VK_FORMAT_R32G32_SFLOAT: 103, | ||
VK_FORMAT_R32G32B32_UINT: 104, | ||
VK_FORMAT_R32G32B32_SINT: 105, | ||
VK_FORMAT_R32G32B32_SFLOAT: 106, | ||
VK_FORMAT_R32G32B32A32_UINT: 107, | ||
VK_FORMAT_R32G32B32A32_SINT: 108, | ||
VK_FORMAT_R32G32B32A32_SFLOAT: 109, | ||
VK_FORMAT_R64_UINT: 110, | ||
VK_FORMAT_R64_SINT: 111, | ||
VK_FORMAT_R64_SFLOAT: 112, | ||
VK_FORMAT_R64G64_UINT: 113, | ||
VK_FORMAT_R64G64_SINT: 114, | ||
VK_FORMAT_R64G64_SFLOAT: 115, | ||
VK_FORMAT_R64G64B64_UINT: 116, | ||
VK_FORMAT_R64G64B64_SINT: 117, | ||
VK_FORMAT_R64G64B64_SFLOAT: 118, | ||
VK_FORMAT_R64G64B64A64_UINT: 119, | ||
VK_FORMAT_R64G64B64A64_SINT: 120, | ||
VK_FORMAT_R64G64B64A64_SFLOAT: 121, | ||
VK_FORMAT_B10G11R11_UFLOAT_PACK32: 122, | ||
VK_FORMAT_E5B9G9R9_UFLOAT_PACK32: 123, | ||
VK_FORMAT_D16_UNORM: 124, | ||
VK_FORMAT_X8_D24_UNORM_PACK32: 125, | ||
VK_FORMAT_D32_SFLOAT: 126, | ||
VK_FORMAT_S8_UINT: 127, | ||
VK_FORMAT_D16_UNORM_S8_UINT: 128, | ||
VK_FORMAT_D24_UNORM_S8_UINT: 129, | ||
VK_FORMAT_D32_SFLOAT_S8_UINT: 130, | ||
VK_FORMAT_BC1_RGB_UNORM_BLOCK: 131, | ||
VK_FORMAT_BC1_RGB_SRGB_BLOCK: 132, | ||
VK_FORMAT_BC1_RGBA_UNORM_BLOCK: 133, | ||
VK_FORMAT_BC1_RGBA_SRGB_BLOCK: 134, | ||
VK_FORMAT_BC2_UNORM_BLOCK: 135, | ||
VK_FORMAT_BC2_SRGB_BLOCK: 136, | ||
VK_FORMAT_BC3_UNORM_BLOCK: 137, | ||
VK_FORMAT_BC3_SRGB_BLOCK: 138, | ||
VK_FORMAT_BC4_UNORM_BLOCK: 139, | ||
VK_FORMAT_BC4_SNORM_BLOCK: 140, | ||
VK_FORMAT_BC5_UNORM_BLOCK: 141, | ||
VK_FORMAT_BC5_SNORM_BLOCK: 142, | ||
VK_FORMAT_BC6H_UFLOAT_BLOCK: 143, | ||
VK_FORMAT_BC6H_SFLOAT_BLOCK: 144, | ||
VK_FORMAT_BC7_UNORM_BLOCK: 145, | ||
VK_FORMAT_BC7_SRGB_BLOCK: 146, | ||
VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: 147, | ||
VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: 148, | ||
VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: 149, | ||
VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: 150, | ||
VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: 151, | ||
VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: 152, | ||
VK_FORMAT_EAC_R11_UNORM_BLOCK: 153, | ||
VK_FORMAT_EAC_R11_SNORM_BLOCK: 154, | ||
VK_FORMAT_EAC_R11G11_UNORM_BLOCK: 155, | ||
VK_FORMAT_EAC_R11G11_SNORM_BLOCK: 156, | ||
VK_FORMAT_ASTC_4x4_UNORM_BLOCK: 157, | ||
VK_FORMAT_ASTC_4x4_SRGB_BLOCK: 158, | ||
VK_FORMAT_ASTC_5x4_UNORM_BLOCK: 159, | ||
VK_FORMAT_ASTC_5x4_SRGB_BLOCK: 160, | ||
VK_FORMAT_ASTC_5x5_UNORM_BLOCK: 161, | ||
VK_FORMAT_ASTC_5x5_SRGB_BLOCK: 162, | ||
VK_FORMAT_ASTC_6x5_UNORM_BLOCK: 163, | ||
VK_FORMAT_ASTC_6x5_SRGB_BLOCK: 164, | ||
VK_FORMAT_ASTC_6x6_UNORM_BLOCK: 165, | ||
VK_FORMAT_ASTC_6x6_SRGB_BLOCK: 166, | ||
VK_FORMAT_ASTC_8x5_UNORM_BLOCK: 167, | ||
VK_FORMAT_ASTC_8x5_SRGB_BLOCK: 168, | ||
VK_FORMAT_ASTC_8x6_UNORM_BLOCK: 169, | ||
VK_FORMAT_ASTC_8x6_SRGB_BLOCK: 170, | ||
VK_FORMAT_ASTC_8x8_UNORM_BLOCK: 171, | ||
VK_FORMAT_ASTC_8x8_SRGB_BLOCK: 172, | ||
VK_FORMAT_ASTC_10x5_UNORM_BLOCK: 173, | ||
VK_FORMAT_ASTC_10x5_SRGB_BLOCK: 174, | ||
VK_FORMAT_ASTC_10x6_UNORM_BLOCK: 175, | ||
VK_FORMAT_ASTC_10x6_SRGB_BLOCK: 176, | ||
VK_FORMAT_ASTC_10x8_UNORM_BLOCK: 177, | ||
VK_FORMAT_ASTC_10x8_SRGB_BLOCK: 178, | ||
VK_FORMAT_ASTC_10x10_UNORM_BLOCK: 179, | ||
VK_FORMAT_ASTC_10x10_SRGB_BLOCK: 180, | ||
VK_FORMAT_ASTC_12x10_UNORM_BLOCK: 181, | ||
VK_FORMAT_ASTC_12x10_SRGB_BLOCK: 182, | ||
VK_FORMAT_ASTC_12x12_UNORM_BLOCK: 183, | ||
VK_FORMAT_ASTC_12x12_SRGB_BLOCK: 184, | ||
VK_FORMAT_G8B8G8R8_422_UNORM: 1000156000, | ||
VK_FORMAT_B8G8R8G8_422_UNORM: 1000156001, | ||
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM: 1000156002, | ||
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: 1000156003, | ||
VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM: 1000156004, | ||
VK_FORMAT_G8_B8R8_2PLANE_422_UNORM: 1000156005, | ||
VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM: 1000156006, | ||
VK_FORMAT_R10X6_UNORM_PACK16: 1000156007, | ||
VK_FORMAT_R10X6G10X6_UNORM_2PACK16: 1000156008, | ||
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16: 1000156009, | ||
VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16: 1000156010, | ||
VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16: 1000156011, | ||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16: 1000156012, | ||
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16: 1000156013, | ||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16: 1000156014, | ||
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16: 1000156015, | ||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16: 1000156016, | ||
VK_FORMAT_R12X4_UNORM_PACK16: 1000156017, | ||
VK_FORMAT_R12X4G12X4_UNORM_2PACK16: 1000156018, | ||
VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16: 1000156019, | ||
VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16: 1000156020, | ||
VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16: 1000156021, | ||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16: 1000156022, | ||
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16: 1000156023, | ||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16: 1000156024, | ||
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: 1000156025, | ||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16: 1000156026, | ||
VK_FORMAT_G16B16G16R16_422_UNORM: 1000156027, | ||
VK_FORMAT_B16G16R16G16_422_UNORM: 1000156028, | ||
VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM: 1000156029, | ||
VK_FORMAT_G16_B16R16_2PLANE_420_UNORM: 1000156030, | ||
VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM: 1000156031, | ||
VK_FORMAT_G16_B16R16_2PLANE_422_UNORM: 1000156032, | ||
VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM: 1000156033, | ||
VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG: 1000054000, | ||
VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG: 1000054001, | ||
VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG: 1000054002, | ||
VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG: 1000054003, | ||
VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG: 1000054004, | ||
VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG: 1000054005, | ||
VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG: 1000054006, | ||
VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: 1000054007, | ||
VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT: 1000066000, | ||
VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT: 1000066001, | ||
VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT: 1000066002, | ||
VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT: 1000066003, | ||
VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT: 1000066004, | ||
VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT: 1000066005, | ||
VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT: 1000066006, | ||
VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT: 1000066007, | ||
VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT: 1000066008, | ||
VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT: 1000066009, | ||
VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT: 1000066010, | ||
VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT: 1000066011, | ||
VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT: 1000066012, | ||
VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT: 1000066013, | ||
VK_FORMAT_G8B8G8R8_422_UNORM_KHR: 1000156000, | ||
VK_FORMAT_B8G8R8G8_422_UNORM_KHR: 1000156001, | ||
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR: 1000156002, | ||
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR: 1000156003, | ||
VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR: 1000156004, | ||
VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR: 1000156005, | ||
VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR: 1000156006, | ||
VK_FORMAT_R10X6_UNORM_PACK16_KHR: 1000156007, | ||
VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR: 1000156008, | ||
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR: 1000156009, | ||
VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR: 1000156010, | ||
VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR: 1000156011, | ||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR: 1000156012, | ||
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR: 1000156013, | ||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR: 1000156014, | ||
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR: 1000156015, | ||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR: 1000156016, | ||
VK_FORMAT_R12X4_UNORM_PACK16_KHR: 1000156017, | ||
VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR: 1000156018, | ||
VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR: 1000156019, | ||
VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR: 1000156020, | ||
VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR: 1000156021, | ||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR: 1000156022, | ||
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR: 1000156023, | ||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR: 1000156024, | ||
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR: 1000156025, | ||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR: 1000156026, | ||
VK_FORMAT_G16B16G16R16_422_UNORM_KHR: 1000156027, | ||
VK_FORMAT_B16G16R16G16_422_UNORM_KHR: 1000156028, | ||
VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR: 1000156029, | ||
VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR: 1000156030, | ||
VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR: 1000156031, | ||
VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR: 1000156032, | ||
VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR: 1000156033, | ||
}; | ||
export default Object.freeze(VulkanConstants); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The environment map looks different than
master
. Is this because the image changed or did the IBL implementation change? The environment map should come with a prefiltered mipmap so that rougher materials produce blurrier reflections. Filament was doing this previously but I'm not sure what the new KTX2 generation process is like.More background: https://learnopengl.com/PBR/IBL/Specular-IBL
From the
Image-Based Lighting
sandcastle:master
ktx2-integration
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also the new image is 4.28MB compared to the previous 2MB. The smaller the better so that we don't bloat the CesiumJS zip release too much.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@YoussefV you mentioned that a straight up KTX -> KTX2 conversion failed. How quick would it be to write our own script just for this? I guess this depends on the number of breaking changes between KTX and KTX2.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would take a while because the spec has changed a decent amount. It might be worth it to open an issue in the KTX2 repo about it if we're 100% confident the original KTX file is valid.
The reason why the KTX2 file is larger is because the mip map is uncompressed, so it unpacks the RGB values.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So I was the one who created the KTX2 image, the mip map didn't make the reflections blurrier because it autogenerated the levels without taking into account it was a specular IBL. I think the best approach here is to fix the existing converter since the problem may most likely be that the converter has a bug.
I'll open up an issue there.