support B10GR11UF format texture files.

This commit is contained in:
hyzboy 2019-12-04 21:05:09 +08:00
parent 776a887911
commit 834cb48fa9
8 changed files with 51 additions and 53 deletions

View File

@ -11,23 +11,22 @@ endmacro()
CreateProject(00.triangle first_triangle.cpp)
CreateProject(01.indices_rect indices_rect.cpp)
CreateProject(02.texture_rect texture_rect.cpp)
CreateProject(03.HQFilterTexture HQFilterTexture.cpp)
CreateProject(04.Geometry2D Geometry2D.cpp)
CreateProject(05.Geometry3D Geometry3D.cpp)
CreateProject(06.SceneTree SceneTree.cpp)
CreateProject(02.TextureFormat TextureFormat.cpp)
CreateProject(03.texture_rect texture_rect.cpp)
CreateProject(04.HQFilterTexture HQFilterTexture.cpp)
CreateProject(05.Geometry2D Geometry2D.cpp)
CreateProject(06.Geometry3D Geometry3D.cpp)
CreateProject(07.SceneTree SceneTree.cpp)
CreateProject(07.LoadModel LoadModel.cpp TGATexture.cpp AssimpLoaderMesh.h AssimpLoaderMesh.cpp ViewModelFramework.h)
target_link_libraries(07.LoadModel assimp)
CreateProject(08.LoadModel LoadModel.cpp AssimpLoaderMesh.h AssimpLoaderMesh.cpp ViewModelFramework.h)
target_link_libraries(08.LoadModel assimp)
CreateProject(08.InlineGeometryScene InlineGeometryScene.cpp)
CreateProject(09.InlineGeometryScene InlineGeometryScene.cpp)
CreateProject(09.Atomsphere Atomsphere.cpp)
CreateProject(10.Atomsphere Atomsphere.cpp)
CreateProject(10.PBRBasic PBRBasic.cpp)
CreateProject(11.PBRBasic PBRBasic.cpp)
CreateProject(11.Deferred Deferred.cpp TGATexture.cpp)
#CreateProject(12.Deferred Deferred.cpp)
#CreateProject(12.DeferredModel DeferredModel.cpp TGATexture.cpp)
CreateProject(13.TextureFormat TextureFormat.cpp)
CreateProject(12.DeferredModel DeferredModel.cpp)

View File

@ -16,7 +16,7 @@ using namespace hgl;
using namespace hgl::graph;
VK_NAMESPACE_BEGIN
Texture2D *LoadTGATexture(const OSString &filename,Device *device);
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename);
VK_NAMESPACE_END
constexpr uint32_t SCREEN_WIDTH=256;
@ -106,7 +106,6 @@ private:
{
Texture2DPointer color=nullptr;
Texture2DPointer normal=nullptr;
// Texture2DPointer specular=nullptr;
}texture;
vulkan::CommandBuffer *gbuffer_cmd=nullptr;
@ -116,7 +115,6 @@ public:
~TestApp()
{
SAFE_CLEAR(gbuffer_cmd);
//SAFE_CLEAR(texture.specular);
SAFE_CLEAR(texture.normal);
SAFE_CLEAR(texture.color);
SAFE_CLEAR(sampler);
@ -288,9 +286,8 @@ private:
if(!InitGBufferPipeline(&sp_gbuffer))return(false);
if(!InitCompositionPipeline(&sp_composition))return(false);
texture.color =vulkan::LoadTGATexture(OS_TEXT("res/image/Brickwall/Albedo.tga"),device);
texture.normal =vulkan::LoadTGATexture(OS_TEXT("res/image/Brickwall/Normal.tga"),device);
//texture.specular=vulkan::LoadTGATexture(OS_TEXT("res/image/APOCWALL029_SPEC.tga"),device);
texture.color =vulkan::CreateTextureFromFile(device,OS_TEXT("res/image/Brickwall/Albedo.Tex2D"));
texture.normal =vulkan::CreateTextureFromFile(device,OS_TEXT("res/image/Brickwall/Normal.Tex2D"));
VkSamplerCreateInfo sampler_create_info;

View File

@ -10,7 +10,7 @@ using namespace hgl;
using namespace hgl::graph;
VK_NAMESPACE_BEGIN
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename,bool use_optimar=true);
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename);
VK_NAMESPACE_END
constexpr uint32_t SCREEN_WIDTH=512;

View File

@ -10,7 +10,7 @@ using namespace hgl;
using namespace hgl::graph;
VK_NAMESPACE_BEGIN
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename,bool use_optimar=true);
Texture2D *CreateTextureFromFile(Device *device,const OSString &filename);
VK_NAMESPACE_END
constexpr uint32_t SCREEN_WIDTH=128;

View File

@ -312,6 +312,7 @@ constexpr size_t FMT_PVRTC_RANGE_SIZE=FMT_PVRTC_END_RANGE-FMT_PVRTC_BEGIN_RANGE+
#define UFMT_RGBA32U FMT_RGBA32U
#define UFMT_RGBA32I FMT_RGBA32I
#define UFMT_RGBA32F FMT_RGBA32F
#define UFMT_B10GR11UF FMT_B10GR11UF
enum class TextureCompressType
{

View File

@ -47,7 +47,8 @@ namespace
{UFMT_RGB32F, 3,{'R','G','B', 0 },{32,32,32, 0},VulkanDataType::SFLOAT},
{UFMT_RGBA32U, 4,{'R','G','B','A'},{32,32,32,32},VulkanDataType::UINT},
{UFMT_RGBA32I, 4,{'R','G','B','A'},{32,32,32,32},VulkanDataType::SINT},
{UFMT_RGBA32F, 4,{'R','G','B','A'},{32,32,32,32},VulkanDataType::SFLOAT}
{UFMT_RGBA32F, 4,{'R','G','B','A'},{32,32,32,32},VulkanDataType::SFLOAT},
{UFMT_B10GR11UF, 3,{'B','G','R', 0 },{10,11,11, 0},VulkanDataType::UFLOAT}
};
constexpr uint PixelFormatCount=sizeof(pf_list)/sizeof(PixelFormat);

View File

@ -48,7 +48,7 @@ bool DescriptorSets::BindUBODynamic(const int binding,const Buffer *buf)
writeDescriptorSet.descriptorCount = 1;
writeDescriptorSet.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
writeDescriptorSet.pImageInfo = nullptr;
writeDescriptorSet.pBufferInfo = buf->GetBufferInfo();;
writeDescriptorSet.pBufferInfo = buf->GetBufferInfo();
writeDescriptorSet.pTexelBufferView = nullptr;
write_desc_sets.Add(writeDescriptorSet);