2024-07-29 14:01:10 +08:00
|
|
|
|
#pragma once
|
2024-07-15 01:23:13 +08:00
|
|
|
|
|
2024-10-10 01:59:24 +08:00
|
|
|
|
#include<hgl/graph/VKNamespace.h>
|
2024-10-19 13:08:05 +08:00
|
|
|
|
#include<hgl/graph/mesh/StaticMeshLODPolicy.h>
|
2024-10-10 01:59:24 +08:00
|
|
|
|
#include<hgl/graph/ShadowPolicy.h>
|
2024-07-17 01:39:13 +08:00
|
|
|
|
|
2024-07-15 01:23:13 +08:00
|
|
|
|
VK_NAMESPACE_BEGIN
|
2024-10-10 01:59:24 +08:00
|
|
|
|
|
|
|
|
|
class SceneNode;
|
|
|
|
|
|
2024-07-15 01:23:13 +08:00
|
|
|
|
class StaticMesh
|
|
|
|
|
{
|
2024-07-28 23:34:04 +08:00
|
|
|
|
protected:
|
2024-10-10 01:59:24 +08:00
|
|
|
|
|
2024-10-13 00:15:45 +08:00
|
|
|
|
StaticMeshLODPolicy lod_policy; ///<LOD策略
|
|
|
|
|
|
2024-07-28 23:34:04 +08:00
|
|
|
|
SceneNode *root_node;
|
2024-07-15 01:23:13 +08:00
|
|
|
|
|
2024-10-10 01:59:24 +08:00
|
|
|
|
StaticMesh *shadow_proxy_static_mesh; ///<阴影代理静态网格
|
|
|
|
|
StaticMesh *physic_proxy_static_mesh; ///<物理代理静态网格
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
bool two_side; ///<双面渲染
|
|
|
|
|
|
2024-10-13 00:15:45 +08:00
|
|
|
|
ObjectDynamicShadowPolicy recommend_dynamic_shadow_policy; ///<动态阴影策略(推荐项,最终可被取代)
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
const StaticMeshLODPolicy GetLODPolicy()const { return lod_policy; } ///<取得LOD策略
|
|
|
|
|
const ObjectDynamicShadowPolicy GetRecommendDynamicShadowPolicy()const { return recommend_dynamic_shadow_policy; } ///<取得推荐的动态阴影策略
|
2024-10-10 01:59:24 +08:00
|
|
|
|
|
2024-07-15 01:23:13 +08:00
|
|
|
|
public:
|
|
|
|
|
|
2024-07-30 00:47:28 +08:00
|
|
|
|
StaticMesh(SceneNode *);
|
2024-07-28 23:34:04 +08:00
|
|
|
|
virtual ~StaticMesh();
|
2024-07-15 01:23:13 +08:00
|
|
|
|
|
2024-07-29 14:01:10 +08:00
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
SceneNode *GetScene(){return root_node;}
|
2024-10-10 01:59:24 +08:00
|
|
|
|
|
|
|
|
|
SceneNode *GetShadowNode() { return shadow_proxy_static_mesh?shadow_proxy_static_mesh->GetScene():root_node; } ///<取得阴影渲染节点
|
|
|
|
|
SceneNode *GetPhysicNode() { return physic_proxy_static_mesh?physic_proxy_static_mesh->GetScene():root_node; } ///<取得物理渲染节点
|
2024-10-13 00:15:45 +08:00
|
|
|
|
|
2024-07-28 23:34:04 +08:00
|
|
|
|
};//class StaticMesh
|
2024-07-15 01:23:13 +08:00
|
|
|
|
VK_NAMESPACE_END
|