little and unimportant update
This commit is contained in:
parent
620d05c6ff
commit
2c67990daa
2
CMCore
2
CMCore
@ -1 +1 @@
|
|||||||
Subproject commit 14ae93e9096b37dd832cee1903f9ae546b033b59
|
Subproject commit 09d777261f4249ccdba5bef44d794742f4e3237a
|
@ -1,6 +1,5 @@
|
|||||||
#include"GizmoResource.h"
|
#include"GizmoResource.h"
|
||||||
#include<hgl/graph/VKRenderResource.h>
|
#include<hgl/graph/VKRenderResource.h>
|
||||||
#include<hgl/graph/InlineGeometry.h>
|
|
||||||
#include<hgl/graph/TransformFaceToCamera.h>
|
#include<hgl/graph/TransformFaceToCamera.h>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
@ -31,9 +30,9 @@ bool InitGizmoRotateStaticMesh()
|
|||||||
GetGizmoRenderable(GizmoShape::Torus,GizmoColor::White),
|
GetGizmoRenderable(GizmoShape::Torus,GizmoColor::White),
|
||||||
};
|
};
|
||||||
|
|
||||||
for(int i=0;i<4;i++)
|
for(auto *r:torus)
|
||||||
{
|
{
|
||||||
if(!torus[i])
|
if(!r)
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,13 +30,14 @@ namespace hgl
|
|||||||
|
|
||||||
Global, ///<使用全局动态阴影
|
Global, ///<使用全局动态阴影
|
||||||
|
|
||||||
|
PerObject, ///<独立对象阴影(就是每个物件独立走普通shadowmap得到一张深度图,缓存到硬盘)
|
||||||
|
|
||||||
Plane, ///<压片阴影(极少三角面的片状物体专用)
|
Plane, ///<压片阴影(极少三角面的片状物体专用)
|
||||||
RTDF, ///<距离场动态阴影(静态物体专用)
|
Capsule, ///<胶囊体阴影(一般用于骨骼动画模型阴影,每根骨骼一个胶囊)
|
||||||
Capsule, ///<胶囊体动态阴影(骨骼动画专用)
|
Cube, ///<立方体阴影(一般用于一些建筑物,比如楼房直接使用一个Cube做Raymarch)
|
||||||
|
MeshSDF, ///<模型3D距离场阴影
|
||||||
|
|
||||||
ShadowVolume, ///<体积阴影(超规则类物体专用,如房子)
|
ENUM_CLASS_RANGE(None,MeshSDF)
|
||||||
|
|
||||||
ENUM_CLASS_RANGE(None,ShadowVolume)
|
|
||||||
};
|
};
|
||||||
}//namespace graph
|
}//namespace graph
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include<hgl/graph/VKNamespace.h>
|
#include<hgl/graph/VKNamespace.h>
|
||||||
|
#include<hgl/graph/StaticMeshLODPolicy.h>
|
||||||
#include<hgl/graph/ShadowPolicy.h>
|
#include<hgl/graph/ShadowPolicy.h>
|
||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
@ -11,6 +12,8 @@ class StaticMesh
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
StaticMeshLODPolicy lod_policy; ///<LOD策略
|
||||||
|
|
||||||
SceneNode *root_node;
|
SceneNode *root_node;
|
||||||
|
|
||||||
StaticMesh *shadow_proxy_static_mesh; ///<阴影代理静态网格
|
StaticMesh *shadow_proxy_static_mesh; ///<阴影代理静态网格
|
||||||
@ -20,7 +23,12 @@ protected:
|
|||||||
|
|
||||||
bool two_side; ///<双面渲染
|
bool two_side; ///<双面渲染
|
||||||
|
|
||||||
ObjectDynamicShadowPolicy dynamic_shadow_policy; ///<动态阴影策略(推荐项,最终可被取代)
|
ObjectDynamicShadowPolicy recommend_dynamic_shadow_policy; ///<动态阴影策略(推荐项,最终可被取代)
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
const StaticMeshLODPolicy GetLODPolicy()const { return lod_policy; } ///<取得LOD策略
|
||||||
|
const ObjectDynamicShadowPolicy GetRecommendDynamicShadowPolicy()const { return recommend_dynamic_shadow_policy; } ///<取得推荐的动态阴影策略
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -33,5 +41,6 @@ public:
|
|||||||
|
|
||||||
SceneNode *GetShadowNode() { return shadow_proxy_static_mesh?shadow_proxy_static_mesh->GetScene():root_node; } ///<取得阴影渲染节点
|
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; } ///<取得物理渲染节点
|
SceneNode *GetPhysicNode() { return physic_proxy_static_mesh?physic_proxy_static_mesh->GetScene():root_node; } ///<取得物理渲染节点
|
||||||
|
|
||||||
};//class StaticMesh
|
};//class StaticMesh
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
|
30
inc/hgl/graph/StaticMeshLODPolicy.h
Normal file
30
inc/hgl/graph/StaticMeshLODPolicy.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include<hgl/graph/VKNamespace.h>
|
||||||
|
#include<hgl/TypeFunc.h>
|
||||||
|
|
||||||
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 静态模型LOD策略
|
||||||
|
*/
|
||||||
|
enum class StaticMeshLODPolicy:uint8
|
||||||
|
{
|
||||||
|
None=0, ///<无LOD
|
||||||
|
|
||||||
|
DiscardDetail, ///<丢弃细节
|
||||||
|
|
||||||
|
AnotherMesh, ///<另一个模型
|
||||||
|
|
||||||
|
Billboard, ///<广告牌
|
||||||
|
|
||||||
|
//Voxel, ///<体素
|
||||||
|
|
||||||
|
//MeshSDF, ///<网格SDF
|
||||||
|
|
||||||
|
//MeshCard, ///<网格卡片
|
||||||
|
|
||||||
|
ENUM_CLASS_RANGE(None,Billboard)
|
||||||
|
};//enum class StaticMeshLODPolicy
|
||||||
|
|
||||||
|
VK_NAMESPACE_END
|
@ -36,7 +36,8 @@ SET(GEOMETRY_FILES ${SG_INCLUDE_PATH}/InlineGeometry.h
|
|||||||
|
|
||||||
SOURCE_GROUP("Geometry" FILES ${GEOMETRY_FILES})
|
SOURCE_GROUP("Geometry" FILES ${GEOMETRY_FILES})
|
||||||
|
|
||||||
SET(LIGHT_FILES ${SG_INCLUDE_PATH}/Light.h)
|
SET(LIGHT_FILES ${SG_INCLUDE_PATH}/Light.h
|
||||||
|
${SG_INCLUDE_PATH}/ShadowPolicy.h)
|
||||||
|
|
||||||
source_group("Light" FILES ${LIGHT_FILES})
|
source_group("Light" FILES ${LIGHT_FILES})
|
||||||
|
|
||||||
@ -63,7 +64,9 @@ SET(SCENE_GRAPH_SOURCE RenderList.cpp
|
|||||||
|
|
||||||
SOURCE_GROUP("Scene Graph" FILES ${SCENE_GRAPH_HEADER} ${SCENE_GRAPH_SOURCE})
|
SOURCE_GROUP("Scene Graph" FILES ${SCENE_GRAPH_HEADER} ${SCENE_GRAPH_SOURCE})
|
||||||
|
|
||||||
SET(STATIC_MESH_HEADER_FILES ${SG_INCLUDE_PATH}/StaticMesh.h)
|
SET(STATIC_MESH_HEADER_FILES ${SG_INCLUDE_PATH}/StaticMesh.h
|
||||||
|
${SG_INCLUDE_PATH}/StaticMeshLODPolicy.h)
|
||||||
|
|
||||||
SET(STATIC_MESH_SOURCE_FILES StaticMesh.cpp)
|
SET(STATIC_MESH_SOURCE_FILES StaticMesh.cpp)
|
||||||
|
|
||||||
SOURCE_GROUP("Scene Graph\\Static Mesh" FILES ${STATIC_MESH_HEADER_FILES} ${STATIC_MESH_SOURCE_FILES})
|
SOURCE_GROUP("Scene Graph\\Static Mesh" FILES ${STATIC_MESH_HEADER_FILES} ${STATIC_MESH_SOURCE_FILES})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user