renamed to JointID/JointWeight instead of BoneID/BoneWeight
This commit is contained in:
parent
aa217c6fc5
commit
8340209697
@ -1 +1 @@
|
|||||||
Subproject commit 1251e2a735c87995b57c0e7fa3bd41981dee086f
|
Subproject commit f57401620a52eaf3fdaaf5410beb9528aadaa49a
|
@ -106,12 +106,9 @@ int main(int,char **)
|
|||||||
|
|
||||||
char olb[]="[ ]";
|
char olb[]="[ ]";
|
||||||
|
|
||||||
if(fp.optimalTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)
|
if(fp.optimalTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT )olb[1]='O';
|
||||||
olb[1]='O';
|
if(fp.linearTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT )olb[2]='L';
|
||||||
if(fp.linearTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)
|
if(fp.bufferFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT )olb[2]='B';
|
||||||
olb[2]='L';
|
|
||||||
if(fp.bufferFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)
|
|
||||||
olb[2]='B';
|
|
||||||
|
|
||||||
std::cout<<olb;
|
std::cout<<olb;
|
||||||
}
|
}
|
||||||
|
@ -65,13 +65,13 @@ constexpr const ShaderBufferSource SBS_MaterialInstance=
|
|||||||
"MaterialInstance mi[256];"
|
"MaterialInstance mi[256];"
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr const ShaderBufferSource SBS_BoneInfo=
|
constexpr const ShaderBufferSource SBS_JointInfo=
|
||||||
{
|
{
|
||||||
"BoneInfo",
|
"JointInfo",
|
||||||
"bone",
|
"joint",
|
||||||
|
|
||||||
R"(
|
R"(
|
||||||
mat4 bone_mats[];
|
mat4 mats[];
|
||||||
)"
|
)"
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -87,13 +87,13 @@ mat4 GetLocalToWorld()
|
|||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
constexpr const char GetBoneMatrix[]=R"(
|
constexpr const char GetJointMatrix[]=R"(
|
||||||
mat4 GetBoneMatrix()
|
mat4 GetJointMatrix()
|
||||||
{
|
{
|
||||||
return bone_mats[BoneID.x]*BoneWeight.x+
|
return joint.mats[JointID.x]*JointWeight.x+
|
||||||
bone_mats[BoneID.y]*BoneWeight.y+
|
joint.mats[JointID.y]*JointWeight.y+
|
||||||
bone_mats[BoneID.z]*BoneWeight.z+
|
joint.mats[JointID.z]*JointWeight.z+
|
||||||
bone_mats[BoneID.w]*BoneWeight.w;
|
joint.mats[JointID.w]*JointWeight.w;
|
||||||
}
|
}
|
||||||
)";
|
)";
|
||||||
|
|
||||||
|
@ -26,13 +26,13 @@ namespace hgl
|
|||||||
AddInput(vat,VAN::MaterialInstanceID,VK_VERTEX_INPUT_RATE_VERTEX,VertexInputGroup::MaterialInstanceID);
|
AddInput(vat,VAN::MaterialInstanceID,VK_VERTEX_INPUT_RATE_VERTEX,VertexInputGroup::MaterialInstanceID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddBone()
|
void AddJoint()
|
||||||
{
|
{
|
||||||
constexpr const VAT id {VertexAttribType::BaseType::UInt,4}; //使用uint8[4]
|
constexpr const VAT id {VertexAttribType::BaseType::UInt,4}; //使用uint8[4]
|
||||||
constexpr const VAT weight {VertexAttribType::BaseType::Float,4}; //使用uint8[4]
|
constexpr const VAT weight {VertexAttribType::BaseType::Float,4}; //使用uint8[4]
|
||||||
|
|
||||||
AddInput(id, VAN::BoneID, VK_VERTEX_INPUT_RATE_VERTEX,VertexInputGroup::BoneID);
|
AddInput(id, VAN::JointID, VK_VERTEX_INPUT_RATE_VERTEX,VertexInputGroup::JointID);
|
||||||
AddInput(weight,VAN::BoneWeight,VK_VERTEX_INPUT_RATE_VERTEX,VertexInputGroup::BoneWeight);
|
AddInput(weight,VAN::JointWeight,VK_VERTEX_INPUT_RATE_VERTEX,VertexInputGroup::JointWeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddLocalToWorld()
|
void AddLocalToWorld()
|
||||||
|
@ -329,28 +329,28 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count<binding_count) //Bone组,暂未支持
|
if(count<binding_count) //Joint组,暂未支持
|
||||||
{
|
{
|
||||||
const uint boneId_binding_count=vil->GetCount(VertexInputGroup::BoneID);
|
const uint joint_id_binding_count=vil->GetCount(VertexInputGroup::JointID);
|
||||||
|
|
||||||
if(boneId_binding_count>0) //有骨骼矩阵信息
|
if(joint_id_binding_count>0) //有矩阵信息
|
||||||
{
|
{
|
||||||
count+=boneId_binding_count;
|
count+=joint_id_binding_count;
|
||||||
|
|
||||||
if(count<binding_count) //BoneWeight组
|
if(count<binding_count) //JointWeight组
|
||||||
{
|
{
|
||||||
const uint boneWeight_binding_count=vil->GetCount(VertexInputGroup::BoneWeight);
|
const uint joing_weight_binding_count=vil->GetCount(VertexInputGroup::JointWeight);
|
||||||
|
|
||||||
if(boneWeight_binding_count!=1)
|
if(joing_weight_binding_count!=1)
|
||||||
{
|
{
|
||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
else //BoneWieght不为1是个bug,除非未来支持8骨骼权重
|
else //JointWieght不为1是个bug,除非未来支持8权重
|
||||||
{
|
{
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else //有BoneID没有BoneWeight? 这是个BUG
|
else //有JointID没有JointWeight? 这是个BUG
|
||||||
{
|
{
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ bool GPUDevice::Resize(const VkExtent2D &extent)
|
|||||||
|
|
||||||
swapchainRT=CreateSwapchainRenderTarget();
|
swapchainRT=CreateSwapchainRenderTarget();
|
||||||
|
|
||||||
return(true);
|
return(swapchainRT);
|
||||||
}
|
}
|
||||||
|
|
||||||
VkCommandBuffer GPUDevice::CreateCommandBuffer()
|
VkCommandBuffer GPUDevice::CreateCommandBuffer()
|
||||||
|
@ -60,10 +60,16 @@ namespace
|
|||||||
}
|
}
|
||||||
|
|
||||||
VkSwapchainKHR swap_chain;
|
VkSwapchainKHR swap_chain;
|
||||||
|
VkResult result;
|
||||||
|
|
||||||
if(vkCreateSwapchainKHR(dev_attr->device,&swapchain_ci,nullptr,&swap_chain)==VK_SUCCESS)
|
result=vkCreateSwapchainKHR(dev_attr->device,&swapchain_ci,nullptr,&swap_chain);
|
||||||
|
|
||||||
|
if(result==VK_SUCCESS)
|
||||||
return(swap_chain);
|
return(swap_chain);
|
||||||
|
|
||||||
|
//LOG_ERROR(OS_TEXT("vkCreateSwapchainKHR failed, result = ")+OSString(result));
|
||||||
|
os_err<<"vkCreateSwapchainKHR failed, result="<<result<<std::endl;
|
||||||
|
|
||||||
return(VK_NULL_HANDLE);
|
return(VK_NULL_HANDLE);
|
||||||
}
|
}
|
||||||
}//namespace
|
}//namespace
|
||||||
|
Loading…
x
Reference in New Issue
Block a user