Explorar o código

feat: 添加坐标转换,修改阶段,修改文件编码

nicetry12138 hai 10 meses
pai
achega
c66cf1a1e6

+ 426 - 1
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/OpenGLDemo.vcxproj

@@ -76,7 +76,7 @@
       <SDLCheck>true</SDLCheck>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ConformanceMode>true</ConformanceMode>
-      <AdditionalIncludeDirectories>$(SolutionDir)Dependencies\GLFW\include;$(SolutionDir)Dependencies\glad\include;$(SolutionDir)OpenGLDemo\src\third\imgui;$(SolutionDir)OpenGLDemo\src\third\stb_image;$(SolutionDir)OpenGLDemo\src\third\glm;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)Dependencies\GLFW\include;$(SolutionDir)Dependencies\glad\include;$(SolutionDir)OpenGLDemo\src\third\imgui;$(SolutionDir)OpenGLDemo\src\third\stb_image;$(SolutionDir)OpenGLDemo\src\third\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -133,6 +133,8 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="src\Util\RenderSettings.cpp" />
+    <ClCompile Include="src\third\glm\detail\glm.cpp" />
     <ClCompile Include="src\Util\CommonHead.cpp" />
     <ClCompile Include="src\Util\Shader.cpp" />
     <ClCompile Include="src\glad.c" />
@@ -151,6 +153,289 @@
     <ClCompile Include="src\Util\Texture.cpp" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="src\Util\RenderSettings.h" />
+    <ClInclude Include="src\third\glm\common.hpp" />
+    <ClInclude Include="src\third\glm\detail\compute_common.hpp" />
+    <ClInclude Include="src\third\glm\detail\compute_vector_relational.hpp" />
+    <ClInclude Include="src\third\glm\detail\qualifier.hpp" />
+    <ClInclude Include="src\third\glm\detail\setup.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_float.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_half.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat2x2.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat2x3.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat2x4.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat3x2.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat3x3.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat3x4.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat4x2.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat4x3.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_mat4x4.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_quat.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_vec1.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_vec2.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_vec3.hpp" />
+    <ClInclude Include="src\third\glm\detail\type_vec4.hpp" />
+    <ClInclude Include="src\third\glm\detail\_features.hpp" />
+    <ClInclude Include="src\third\glm\detail\_fixes.hpp" />
+    <ClInclude Include="src\third\glm\detail\_noise.hpp" />
+    <ClInclude Include="src\third\glm\detail\_swizzle.hpp" />
+    <ClInclude Include="src\third\glm\detail\_swizzle_func.hpp" />
+    <ClInclude Include="src\third\glm\detail\_vectorize.hpp" />
+    <ClInclude Include="src\third\glm\exponential.hpp" />
+    <ClInclude Include="src\third\glm\ext.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_clip_space.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_common.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double2x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double2x2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double2x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double2x3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double2x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double2x4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double3x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double3x2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double3x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double3x3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double3x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double3x4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double4x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double4x2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double4x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double4x3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double4x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_double4x4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float2x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float2x2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float2x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float2x3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float2x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float2x4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float3x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float3x2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float3x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float3x3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float3x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float3x4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float4x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float4x2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float4x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float4x3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float4x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_float4x4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int2x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int2x2_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int2x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int2x3_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int2x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int2x4_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int3x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int3x2_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int3x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int3x3_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int3x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int3x4_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int4x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int4x2_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int4x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int4x3_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int4x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_int4x4_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_projection.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_relational.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_transform.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x2_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x3_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x4_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x2_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x3_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x4_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x2.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x2_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x3.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x3_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x4.hpp" />
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x4_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_common.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_double.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_double_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_exponential.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_float.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_float_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_geometric.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_relational.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_transform.hpp" />
+    <ClInclude Include="src\third\glm\ext\quaternion_trigonometric.hpp" />
+    <ClInclude Include="src\third\glm\ext\scalar_common.hpp" />
+    <ClInclude Include="src\third\glm\ext\scalar_constants.hpp" />
+    <ClInclude Include="src\third\glm\ext\scalar_integer.hpp" />
+    <ClInclude Include="src\third\glm\ext\scalar_int_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\scalar_packing.hpp" />
+    <ClInclude Include="src\third\glm\ext\scalar_relational.hpp" />
+    <ClInclude Include="src\third\glm\ext\scalar_uint_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\scalar_ulp.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_bool1.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_bool1_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_bool2.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_bool2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_bool3.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_bool3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_bool4.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_bool4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_common.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_double1.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_double1_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_double2.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_double2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_double3.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_double3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_double4.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_double4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_float1.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_float1_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_float2.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_float2_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_float3.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_float3_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_float4.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_float4_precision.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_int1.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_int1_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_int2.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_int2_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_int3.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_int3_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_int4.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_int4_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_integer.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_packing.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_relational.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_uint1.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_uint1_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_uint2.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_uint2_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_uint3.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_uint3_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_uint4.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_uint4_sized.hpp" />
+    <ClInclude Include="src\third\glm\ext\vector_ulp.hpp" />
+    <ClInclude Include="src\third\glm\fwd.hpp" />
+    <ClInclude Include="src\third\glm\geometric.hpp" />
+    <ClInclude Include="src\third\glm\glm.hpp" />
+    <ClInclude Include="src\third\glm\gtc\bitfield.hpp" />
+    <ClInclude Include="src\third\glm\gtc\color_space.hpp" />
+    <ClInclude Include="src\third\glm\gtc\constants.hpp" />
+    <ClInclude Include="src\third\glm\gtc\epsilon.hpp" />
+    <ClInclude Include="src\third\glm\gtc\integer.hpp" />
+    <ClInclude Include="src\third\glm\gtc\matrix_access.hpp" />
+    <ClInclude Include="src\third\glm\gtc\matrix_integer.hpp" />
+    <ClInclude Include="src\third\glm\gtc\matrix_inverse.hpp" />
+    <ClInclude Include="src\third\glm\gtc\matrix_transform.hpp" />
+    <ClInclude Include="src\third\glm\gtc\noise.hpp" />
+    <ClInclude Include="src\third\glm\gtc\packing.hpp" />
+    <ClInclude Include="src\third\glm\gtc\quaternion.hpp" />
+    <ClInclude Include="src\third\glm\gtc\random.hpp" />
+    <ClInclude Include="src\third\glm\gtc\reciprocal.hpp" />
+    <ClInclude Include="src\third\glm\gtc\round.hpp" />
+    <ClInclude Include="src\third\glm\gtc\type_aligned.hpp" />
+    <ClInclude Include="src\third\glm\gtc\type_precision.hpp" />
+    <ClInclude Include="src\third\glm\gtc\type_ptr.hpp" />
+    <ClInclude Include="src\third\glm\gtc\ulp.hpp" />
+    <ClInclude Include="src\third\glm\gtc\vec1.hpp" />
+    <ClInclude Include="src\third\glm\gtx\associated_min_max.hpp" />
+    <ClInclude Include="src\third\glm\gtx\bit.hpp" />
+    <ClInclude Include="src\third\glm\gtx\closest_point.hpp" />
+    <ClInclude Include="src\third\glm\gtx\color_encoding.hpp" />
+    <ClInclude Include="src\third\glm\gtx\color_space.hpp" />
+    <ClInclude Include="src\third\glm\gtx\color_space_YCoCg.hpp" />
+    <ClInclude Include="src\third\glm\gtx\common.hpp" />
+    <ClInclude Include="src\third\glm\gtx\compatibility.hpp" />
+    <ClInclude Include="src\third\glm\gtx\component_wise.hpp" />
+    <ClInclude Include="src\third\glm\gtx\dual_quaternion.hpp" />
+    <ClInclude Include="src\third\glm\gtx\easing.hpp" />
+    <ClInclude Include="src\third\glm\gtx\euler_angles.hpp" />
+    <ClInclude Include="src\third\glm\gtx\extend.hpp" />
+    <ClInclude Include="src\third\glm\gtx\extended_min_max.hpp" />
+    <ClInclude Include="src\third\glm\gtx\exterior_product.hpp" />
+    <ClInclude Include="src\third\glm\gtx\fast_exponential.hpp" />
+    <ClInclude Include="src\third\glm\gtx\fast_square_root.hpp" />
+    <ClInclude Include="src\third\glm\gtx\fast_trigonometry.hpp" />
+    <ClInclude Include="src\third\glm\gtx\functions.hpp" />
+    <ClInclude Include="src\third\glm\gtx\gradient_paint.hpp" />
+    <ClInclude Include="src\third\glm\gtx\handed_coordinate_space.hpp" />
+    <ClInclude Include="src\third\glm\gtx\hash.hpp" />
+    <ClInclude Include="src\third\glm\gtx\integer.hpp" />
+    <ClInclude Include="src\third\glm\gtx\intersect.hpp" />
+    <ClInclude Include="src\third\glm\gtx\io.hpp" />
+    <ClInclude Include="src\third\glm\gtx\log_base.hpp" />
+    <ClInclude Include="src\third\glm\gtx\matrix_cross_product.hpp" />
+    <ClInclude Include="src\third\glm\gtx\matrix_decompose.hpp" />
+    <ClInclude Include="src\third\glm\gtx\matrix_factorisation.hpp" />
+    <ClInclude Include="src\third\glm\gtx\matrix_interpolation.hpp" />
+    <ClInclude Include="src\third\glm\gtx\matrix_major_storage.hpp" />
+    <ClInclude Include="src\third\glm\gtx\matrix_operation.hpp" />
+    <ClInclude Include="src\third\glm\gtx\matrix_query.hpp" />
+    <ClInclude Include="src\third\glm\gtx\matrix_transform_2d.hpp" />
+    <ClInclude Include="src\third\glm\gtx\mixed_product.hpp" />
+    <ClInclude Include="src\third\glm\gtx\norm.hpp" />
+    <ClInclude Include="src\third\glm\gtx\normal.hpp" />
+    <ClInclude Include="src\third\glm\gtx\normalize_dot.hpp" />
+    <ClInclude Include="src\third\glm\gtx\number_precision.hpp" />
+    <ClInclude Include="src\third\glm\gtx\optimum_pow.hpp" />
+    <ClInclude Include="src\third\glm\gtx\orthonormalize.hpp" />
+    <ClInclude Include="src\third\glm\gtx\perpendicular.hpp" />
+    <ClInclude Include="src\third\glm\gtx\polar_coordinates.hpp" />
+    <ClInclude Include="src\third\glm\gtx\projection.hpp" />
+    <ClInclude Include="src\third\glm\gtx\quaternion.hpp" />
+    <ClInclude Include="src\third\glm\gtx\range.hpp" />
+    <ClInclude Include="src\third\glm\gtx\raw_data.hpp" />
+    <ClInclude Include="src\third\glm\gtx\rotate_normalized_axis.hpp" />
+    <ClInclude Include="src\third\glm\gtx\rotate_vector.hpp" />
+    <ClInclude Include="src\third\glm\gtx\scalar_multiplication.hpp" />
+    <ClInclude Include="src\third\glm\gtx\scalar_relational.hpp" />
+    <ClInclude Include="src\third\glm\gtx\spline.hpp" />
+    <ClInclude Include="src\third\glm\gtx\std_based_type.hpp" />
+    <ClInclude Include="src\third\glm\gtx\string_cast.hpp" />
+    <ClInclude Include="src\third\glm\gtx\texture.hpp" />
+    <ClInclude Include="src\third\glm\gtx\transform.hpp" />
+    <ClInclude Include="src\third\glm\gtx\transform2.hpp" />
+    <ClInclude Include="src\third\glm\gtx\type_aligned.hpp" />
+    <ClInclude Include="src\third\glm\gtx\type_trait.hpp" />
+    <ClInclude Include="src\third\glm\gtx\vector_angle.hpp" />
+    <ClInclude Include="src\third\glm\gtx\vector_query.hpp" />
+    <ClInclude Include="src\third\glm\gtx\vec_swizzle.hpp" />
+    <ClInclude Include="src\third\glm\gtx\wrap.hpp" />
+    <ClInclude Include="src\third\glm\integer.hpp" />
+    <ClInclude Include="src\third\glm\mat2x2.hpp" />
+    <ClInclude Include="src\third\glm\mat2x3.hpp" />
+    <ClInclude Include="src\third\glm\mat2x4.hpp" />
+    <ClInclude Include="src\third\glm\mat3x2.hpp" />
+    <ClInclude Include="src\third\glm\mat3x3.hpp" />
+    <ClInclude Include="src\third\glm\mat3x4.hpp" />
+    <ClInclude Include="src\third\glm\mat4x2.hpp" />
+    <ClInclude Include="src\third\glm\mat4x3.hpp" />
+    <ClInclude Include="src\third\glm\mat4x4.hpp" />
+    <ClInclude Include="src\third\glm\matrix.hpp" />
+    <ClInclude Include="src\third\glm\packing.hpp" />
+    <ClInclude Include="src\third\glm\simd\common.h" />
+    <ClInclude Include="src\third\glm\simd\exponential.h" />
+    <ClInclude Include="src\third\glm\simd\geometric.h" />
+    <ClInclude Include="src\third\glm\simd\integer.h" />
+    <ClInclude Include="src\third\glm\simd\matrix.h" />
+    <ClInclude Include="src\third\glm\simd\neon.h" />
+    <ClInclude Include="src\third\glm\simd\packing.h" />
+    <ClInclude Include="src\third\glm\simd\platform.h" />
+    <ClInclude Include="src\third\glm\simd\trigonometric.h" />
+    <ClInclude Include="src\third\glm\simd\vector_relational.h" />
+    <ClInclude Include="src\third\glm\trigonometric.hpp" />
+    <ClInclude Include="src\third\glm\vec2.hpp" />
+    <ClInclude Include="src\third\glm\vec3.hpp" />
+    <ClInclude Include="src\third\glm\vec4.hpp" />
+    <ClInclude Include="src\third\glm\vector_relational.hpp" />
     <ClInclude Include="src\Util\CommonData.h" />
     <ClInclude Include="src\Util\Shader.h" />
     <ClInclude Include="src\third\imgui\imconfig.h" />
@@ -168,16 +453,156 @@
     <ClInclude Include="src\testModule\TestPosition.h" />
     <ClInclude Include="src\Util\Texture.h" />
     <ClInclude Include="src\Util\CommonHead.h" />
+    <ClInclude Include="src\Util\UtilTemplate.h" />
   </ItemGroup>
   <ItemGroup>
     <None Include="res\shader\TextPosition\Fragment.frag" />
     <None Include="res\shader\TextPosition\Vertex.vert" />
+    <None Include="src\third\glm\detail\func_common.inl" />
+    <None Include="src\third\glm\detail\func_common_simd.inl" />
+    <None Include="src\third\glm\detail\func_exponential.inl" />
+    <None Include="src\third\glm\detail\func_exponential_simd.inl" />
+    <None Include="src\third\glm\detail\func_geometric.inl" />
+    <None Include="src\third\glm\detail\func_geometric_simd.inl" />
+    <None Include="src\third\glm\detail\func_integer.inl" />
+    <None Include="src\third\glm\detail\func_integer_simd.inl" />
+    <None Include="src\third\glm\detail\func_matrix.inl" />
+    <None Include="src\third\glm\detail\func_matrix_simd.inl" />
+    <None Include="src\third\glm\detail\func_packing.inl" />
+    <None Include="src\third\glm\detail\func_packing_simd.inl" />
+    <None Include="src\third\glm\detail\func_trigonometric.inl" />
+    <None Include="src\third\glm\detail\func_trigonometric_simd.inl" />
+    <None Include="src\third\glm\detail\func_vector_relational.inl" />
+    <None Include="src\third\glm\detail\func_vector_relational_simd.inl" />
+    <None Include="src\third\glm\detail\type_half.inl" />
+    <None Include="src\third\glm\detail\type_mat2x2.inl" />
+    <None Include="src\third\glm\detail\type_mat2x3.inl" />
+    <None Include="src\third\glm\detail\type_mat2x4.inl" />
+    <None Include="src\third\glm\detail\type_mat3x2.inl" />
+    <None Include="src\third\glm\detail\type_mat3x3.inl" />
+    <None Include="src\third\glm\detail\type_mat3x4.inl" />
+    <None Include="src\third\glm\detail\type_mat4x2.inl" />
+    <None Include="src\third\glm\detail\type_mat4x3.inl" />
+    <None Include="src\third\glm\detail\type_mat4x4.inl" />
+    <None Include="src\third\glm\detail\type_mat4x4_simd.inl" />
+    <None Include="src\third\glm\detail\type_quat.inl" />
+    <None Include="src\third\glm\detail\type_quat_simd.inl" />
+    <None Include="src\third\glm\detail\type_vec1.inl" />
+    <None Include="src\third\glm\detail\type_vec2.inl" />
+    <None Include="src\third\glm\detail\type_vec3.inl" />
+    <None Include="src\third\glm\detail\type_vec4.inl" />
+    <None Include="src\third\glm\detail\type_vec4_simd.inl" />
+    <None Include="src\third\glm\ext\matrix_clip_space.inl" />
+    <None Include="src\third\glm\ext\matrix_common.inl" />
+    <None Include="src\third\glm\ext\matrix_projection.inl" />
+    <None Include="src\third\glm\ext\matrix_relational.inl" />
+    <None Include="src\third\glm\ext\matrix_transform.inl" />
+    <None Include="src\third\glm\ext\quaternion_common.inl" />
+    <None Include="src\third\glm\ext\quaternion_common_simd.inl" />
+    <None Include="src\third\glm\ext\quaternion_exponential.inl" />
+    <None Include="src\third\glm\ext\quaternion_geometric.inl" />
+    <None Include="src\third\glm\ext\quaternion_relational.inl" />
+    <None Include="src\third\glm\ext\quaternion_transform.inl" />
+    <None Include="src\third\glm\ext\quaternion_trigonometric.inl" />
+    <None Include="src\third\glm\ext\scalar_common.inl" />
+    <None Include="src\third\glm\ext\scalar_constants.inl" />
+    <None Include="src\third\glm\ext\scalar_integer.inl" />
+    <None Include="src\third\glm\ext\scalar_packing.inl" />
+    <None Include="src\third\glm\ext\scalar_relational.inl" />
+    <None Include="src\third\glm\ext\scalar_ulp.inl" />
+    <None Include="src\third\glm\ext\vector_common.inl" />
+    <None Include="src\third\glm\ext\vector_integer.inl" />
+    <None Include="src\third\glm\ext\vector_packing.inl" />
+    <None Include="src\third\glm\ext\vector_relational.inl" />
+    <None Include="src\third\glm\ext\vector_ulp.inl" />
+    <None Include="src\third\glm\gtc\bitfield.inl" />
+    <None Include="src\third\glm\gtc\color_space.inl" />
+    <None Include="src\third\glm\gtc\constants.inl" />
+    <None Include="src\third\glm\gtc\epsilon.inl" />
+    <None Include="src\third\glm\gtc\integer.inl" />
+    <None Include="src\third\glm\gtc\matrix_access.inl" />
+    <None Include="src\third\glm\gtc\matrix_inverse.inl" />
+    <None Include="src\third\glm\gtc\matrix_transform.inl" />
+    <None Include="src\third\glm\gtc\noise.inl" />
+    <None Include="src\third\glm\gtc\packing.inl" />
+    <None Include="src\third\glm\gtc\quaternion.inl" />
+    <None Include="src\third\glm\gtc\quaternion_simd.inl" />
+    <None Include="src\third\glm\gtc\random.inl" />
+    <None Include="src\third\glm\gtc\reciprocal.inl" />
+    <None Include="src\third\glm\gtc\round.inl" />
+    <None Include="src\third\glm\gtc\type_precision.inl" />
+    <None Include="src\third\glm\gtc\type_ptr.inl" />
+    <None Include="src\third\glm\gtc\ulp.inl" />
+    <None Include="src\third\glm\gtx\associated_min_max.inl" />
+    <None Include="src\third\glm\gtx\bit.inl" />
+    <None Include="src\third\glm\gtx\closest_point.inl" />
+    <None Include="src\third\glm\gtx\color_encoding.inl" />
+    <None Include="src\third\glm\gtx\color_space.inl" />
+    <None Include="src\third\glm\gtx\color_space_YCoCg.inl" />
+    <None Include="src\third\glm\gtx\common.inl" />
+    <None Include="src\third\glm\gtx\compatibility.inl" />
+    <None Include="src\third\glm\gtx\component_wise.inl" />
+    <None Include="src\third\glm\gtx\dual_quaternion.inl" />
+    <None Include="src\third\glm\gtx\easing.inl" />
+    <None Include="src\third\glm\gtx\euler_angles.inl" />
+    <None Include="src\third\glm\gtx\extend.inl" />
+    <None Include="src\third\glm\gtx\extended_min_max.inl" />
+    <None Include="src\third\glm\gtx\exterior_product.inl" />
+    <None Include="src\third\glm\gtx\fast_exponential.inl" />
+    <None Include="src\third\glm\gtx\fast_square_root.inl" />
+    <None Include="src\third\glm\gtx\fast_trigonometry.inl" />
+    <None Include="src\third\glm\gtx\float_notmalize.inl" />
+    <None Include="src\third\glm\gtx\functions.inl" />
+    <None Include="src\third\glm\gtx\gradient_paint.inl" />
+    <None Include="src\third\glm\gtx\handed_coordinate_space.inl" />
+    <None Include="src\third\glm\gtx\hash.inl" />
+    <None Include="src\third\glm\gtx\integer.inl" />
+    <None Include="src\third\glm\gtx\intersect.inl" />
+    <None Include="src\third\glm\gtx\io.inl" />
+    <None Include="src\third\glm\gtx\log_base.inl" />
+    <None Include="src\third\glm\gtx\matrix_cross_product.inl" />
+    <None Include="src\third\glm\gtx\matrix_decompose.inl" />
+    <None Include="src\third\glm\gtx\matrix_factorisation.inl" />
+    <None Include="src\third\glm\gtx\matrix_interpolation.inl" />
+    <None Include="src\third\glm\gtx\matrix_major_storage.inl" />
+    <None Include="src\third\glm\gtx\matrix_operation.inl" />
+    <None Include="src\third\glm\gtx\matrix_query.inl" />
+    <None Include="src\third\glm\gtx\matrix_transform_2d.inl" />
+    <None Include="src\third\glm\gtx\mixed_product.inl" />
+    <None Include="src\third\glm\gtx\norm.inl" />
+    <None Include="src\third\glm\gtx\normal.inl" />
+    <None Include="src\third\glm\gtx\normalize_dot.inl" />
+    <None Include="src\third\glm\gtx\number_precision.inl" />
+    <None Include="src\third\glm\gtx\optimum_pow.inl" />
+    <None Include="src\third\glm\gtx\orthonormalize.inl" />
+    <None Include="src\third\glm\gtx\perpendicular.inl" />
+    <None Include="src\third\glm\gtx\polar_coordinates.inl" />
+    <None Include="src\third\glm\gtx\projection.inl" />
+    <None Include="src\third\glm\gtx\quaternion.inl" />
+    <None Include="src\third\glm\gtx\raw_data.inl" />
+    <None Include="src\third\glm\gtx\rotate_normalized_axis.inl" />
+    <None Include="src\third\glm\gtx\rotate_vector.inl" />
+    <None Include="src\third\glm\gtx\scalar_relational.inl" />
+    <None Include="src\third\glm\gtx\spline.inl" />
+    <None Include="src\third\glm\gtx\std_based_type.inl" />
+    <None Include="src\third\glm\gtx\string_cast.inl" />
+    <None Include="src\third\glm\gtx\texture.inl" />
+    <None Include="src\third\glm\gtx\transform.inl" />
+    <None Include="src\third\glm\gtx\transform2.inl" />
+    <None Include="src\third\glm\gtx\type_aligned.inl" />
+    <None Include="src\third\glm\gtx\type_trait.inl" />
+    <None Include="src\third\glm\gtx\vector_angle.inl" />
+    <None Include="src\third\glm\gtx\vector_query.inl" />
+    <None Include="src\third\glm\gtx\wrap.inl" />
   </ItemGroup>
   <ItemGroup>
     <Image Include="res\textures\test.jpg" />
     <Image Include="res\textures\test2.png" />
     <Image Include="res\textures\test3.png" />
   </ItemGroup>
+  <ItemGroup>
+    <Text Include="src\third\glm\CMakeLists.txt" />
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>

+ 1284 - 15
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/OpenGLDemo.vcxproj.filters

@@ -63,6 +63,12 @@
     <ClCompile Include="src\Util\CommonHead.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
+    <ClCompile Include="src\third\glm\detail\glm.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
+    <ClCompile Include="src\Util\RenderSettings.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="src\third\imgui\imstb_truetype.h">
@@ -116,20 +122,1283 @@
     <ClInclude Include="src\Util\CommonData.h">
       <Filter>头文件</Filter>
     </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="res\shader\TextPosition\Vertex.vert" />
-    <None Include="res\shader\TextPosition\Fragment.frag" />
-  </ItemGroup>
-  <ItemGroup>
-    <Image Include="res\textures\test.jpg">
-      <Filter>资源文件</Filter>
-    </Image>
-    <Image Include="res\textures\test2.png">
-      <Filter>资源文件</Filter>
-    </Image>
-    <Image Include="res\textures\test3.png">
-      <Filter>资源文件</Filter>
-    </Image>
+    <ClInclude Include="src\third\glm\detail\_features.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\_fixes.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\_noise.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\_swizzle.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\_swizzle_func.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\_vectorize.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\compute_common.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\compute_vector_relational.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\qualifier.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\setup.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_float.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_half.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat2x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat2x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat2x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat3x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat3x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat3x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat4x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat4x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_mat4x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_quat.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_vec1.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_vec2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_vec3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\detail\type_vec4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_clip_space.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_common.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double2x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double2x2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double2x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double2x3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double2x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double2x4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double3x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double3x2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double3x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double3x3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double3x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double3x4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double4x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double4x2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double4x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double4x3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double4x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_double4x4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float2x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float2x2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float2x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float2x3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float2x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float2x4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float3x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float3x2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float3x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float3x3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float3x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float3x4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float4x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float4x2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float4x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float4x3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float4x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_float4x4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int2x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int2x2_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int2x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int2x3_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int2x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int2x4_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int3x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int3x2_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int3x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int3x3_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int3x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int3x4_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int4x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int4x2_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int4x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int4x3_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int4x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_int4x4_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_projection.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_relational.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_transform.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x2_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x3_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint2x4_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x2_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x3_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint3x4_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x2_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x3_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\matrix_uint4x4_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_common.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_double.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_double_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_exponential.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_float.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_float_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_geometric.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_relational.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_transform.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\quaternion_trigonometric.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\scalar_common.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\scalar_constants.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\scalar_int_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\scalar_integer.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\scalar_packing.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\scalar_relational.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\scalar_uint_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\scalar_ulp.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_bool1.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_bool1_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_bool2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_bool2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_bool3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_bool3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_bool4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_bool4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_common.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_double1.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_double1_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_double2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_double2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_double3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_double3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_double4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_double4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_float1.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_float1_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_float2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_float2_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_float3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_float3_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_float4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_float4_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_int1.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_int1_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_int2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_int2_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_int3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_int3_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_int4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_int4_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_integer.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_packing.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_relational.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_uint1.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_uint1_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_uint2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_uint2_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_uint3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_uint3_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_uint4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_uint4_sized.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext\vector_ulp.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\bitfield.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\color_space.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\constants.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\epsilon.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\integer.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\matrix_access.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\matrix_integer.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\matrix_inverse.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\matrix_transform.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\noise.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\packing.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\quaternion.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\random.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\reciprocal.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\round.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\type_aligned.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\type_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\type_ptr.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\ulp.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtc\vec1.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\associated_min_max.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\bit.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\closest_point.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\color_encoding.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\color_space.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\color_space_YCoCg.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\common.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\compatibility.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\component_wise.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\dual_quaternion.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\easing.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\euler_angles.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\extend.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\extended_min_max.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\exterior_product.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\fast_exponential.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\fast_square_root.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\fast_trigonometry.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\functions.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\gradient_paint.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\handed_coordinate_space.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\hash.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\integer.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\intersect.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\io.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\log_base.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\matrix_cross_product.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\matrix_decompose.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\matrix_factorisation.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\matrix_interpolation.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\matrix_major_storage.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\matrix_operation.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\matrix_query.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\matrix_transform_2d.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\mixed_product.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\norm.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\normal.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\normalize_dot.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\number_precision.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\optimum_pow.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\orthonormalize.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\perpendicular.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\polar_coordinates.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\projection.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\quaternion.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\range.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\raw_data.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\rotate_normalized_axis.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\rotate_vector.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\scalar_multiplication.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\scalar_relational.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\spline.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\std_based_type.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\string_cast.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\texture.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\transform.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\transform2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\type_aligned.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\type_trait.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\vec_swizzle.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\vector_angle.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\vector_query.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\gtx\wrap.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\common.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\exponential.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\geometric.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\integer.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\matrix.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\neon.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\packing.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\platform.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\trigonometric.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\simd\vector_relational.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\common.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\exponential.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\ext.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\fwd.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\geometric.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\glm.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\integer.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat2x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat2x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat2x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat3x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat3x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat3x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat4x2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat4x3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\mat4x4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\matrix.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\packing.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\trigonometric.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\vec2.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\vec3.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\vec4.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\third\glm\vector_relational.hpp">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\Util\RenderSettings.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+    <ClInclude Include="src\Util\UtilTemplate.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="res\shader\TextPosition\Vertex.vert" />
+    <None Include="res\shader\TextPosition\Fragment.frag" />
+    <None Include="src\third\glm\detail\func_common.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_common_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_exponential.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_exponential_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_geometric.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_geometric_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_integer.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_integer_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_matrix.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_matrix_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_packing.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_packing_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_trigonometric.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_trigonometric_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_vector_relational.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\func_vector_relational_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_half.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat2x2.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat2x3.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat2x4.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat3x2.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat3x3.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat3x4.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat4x2.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat4x3.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat4x4.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_mat4x4_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_quat.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_quat_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_vec1.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_vec2.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_vec3.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_vec4.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\detail\type_vec4_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\matrix_clip_space.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\matrix_common.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\matrix_projection.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\matrix_relational.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\matrix_transform.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\quaternion_common.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\quaternion_common_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\quaternion_exponential.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\quaternion_geometric.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\quaternion_relational.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\quaternion_transform.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\quaternion_trigonometric.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\scalar_common.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\scalar_constants.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\scalar_integer.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\scalar_packing.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\scalar_relational.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\scalar_ulp.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\vector_common.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\vector_integer.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\vector_packing.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\vector_relational.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\ext\vector_ulp.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\bitfield.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\color_space.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\constants.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\epsilon.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\integer.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\matrix_access.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\matrix_inverse.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\matrix_transform.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\noise.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\packing.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\quaternion.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\quaternion_simd.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\random.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\reciprocal.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\round.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\type_precision.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\type_ptr.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtc\ulp.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\associated_min_max.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\bit.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\closest_point.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\color_encoding.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\color_space.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\color_space_YCoCg.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\common.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\compatibility.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\component_wise.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\dual_quaternion.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\easing.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\euler_angles.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\extend.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\extended_min_max.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\exterior_product.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\fast_exponential.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\fast_square_root.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\fast_trigonometry.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\float_notmalize.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\functions.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\gradient_paint.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\handed_coordinate_space.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\hash.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\integer.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\intersect.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\io.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\log_base.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\matrix_cross_product.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\matrix_decompose.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\matrix_factorisation.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\matrix_interpolation.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\matrix_major_storage.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\matrix_operation.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\matrix_query.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\matrix_transform_2d.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\mixed_product.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\norm.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\normal.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\normalize_dot.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\number_precision.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\optimum_pow.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\orthonormalize.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\perpendicular.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\polar_coordinates.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\projection.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\quaternion.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\raw_data.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\rotate_normalized_axis.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\rotate_vector.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\scalar_relational.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\spline.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\std_based_type.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\string_cast.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\texture.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\transform.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\transform2.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\type_aligned.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\type_trait.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\vector_angle.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\vector_query.inl">
+      <Filter>头文件</Filter>
+    </None>
+    <None Include="src\third\glm\gtx\wrap.inl">
+      <Filter>头文件</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="res\textures\test.jpg">
+      <Filter>资源文件</Filter>
+    </Image>
+    <Image Include="res\textures\test2.png">
+      <Filter>资源文件</Filter>
+    </Image>
+    <Image Include="res\textures\test3.png">
+      <Filter>资源文件</Filter>
+    </Image>
+  </ItemGroup>
+  <ItemGroup>
+    <Text Include="src\third\glm\CMakeLists.txt" />
   </ItemGroup>
 </Project>

+ 5 - 0
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/imgui.ini

@@ -13,3 +13,8 @@ Pos=755,32
 Size=391,97
 Collapsed=0
 
+[Window][Rotate]
+Pos=412,55
+Size=339,163
+Collapsed=0
+

+ 5 - 1
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/res/shader/TextPosition/Vertex.vert

@@ -9,8 +9,12 @@ out vec4 v_Color;
 out vec2 v_TexCoord;
 flat out int v_TexIndex;
 
+uniform mat4 model;
+uniform mat4 view;
+uniform mat4 projection;
+
 void main() {
-	gl_Position = vec4(inPosition, 1.0f);
+	gl_Position = projection * view * model * vec4(inPosition, 1.0);
 	v_TexCoord = inTexCoord;
 	v_TexIndex = inTexIndex;
 	v_Color = inColor;

+ 3 - 2
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/Util/CommonHead.h

@@ -16,8 +16,9 @@
 #include "imgui_impl_glfw.h"
 #include "imgui_impl_opengl3.h"
 
-#include "glm.hpp"
-#include "gtc/matrix_transform.hpp"
+#include "glm/glm.hpp"
+#include "glm/ext.hpp"
+#include "glm/gtc/matrix_transform.hpp"
 
 #define GL_CHECK_ERROR do { LogError(__LINE__); }while(0);
 #define GL_CLEAR_ERROR do { GLClearError(); } while(0);

+ 1 - 0
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/Util/RenderSettings.cpp

@@ -0,0 +1 @@
+#include "RenderSettings.h"

+ 14 - 0
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/Util/RenderSettings.h

@@ -0,0 +1,14 @@
+#pragma once
+#include "UtilTemplate.h"
+
+#define RSI (RenderSettings::GetInstance())
+
+class RenderSettings : public Instance<RenderSettings>
+{
+public:
+	int ViewportWidth = 800;
+	int ViewportHeight = 600;
+	int ViewportX = 0;
+	int ViewportY = 0;
+};
+

+ 11 - 0
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/Util/UtilTemplate.h

@@ -0,0 +1,11 @@
+#pragma once
+
+template <typename T>
+class Instance
+{
+public:
+	static T* GetInstance() {
+		static T instance;
+		return &instance;
+	}
+};

+ 7 - 1
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/main.cpp

@@ -9,13 +9,18 @@
 #include "imgui_impl_glfw.h"
 #include "imgui_impl_opengl3.h"
 
+#include "Util/RenderSettings.h"
+
 #include "testModule/TestClearColor.h"
 #include "testModule/TestPosition.h"
 
+
 // 定义回调函数
 void framebuffer_size_callback(GLFWwindow* window, int width, int height)
 {
     glViewport(0, 0, width, height);
+    RSI->ViewportWidth = width;
+    RSI->ViewportHeight = height;
 }
 
 void InitImGUI(GLFWwindow* window)
@@ -95,7 +100,7 @@ int main()
         return -1;
     }
 
-    glViewport(0, 0, 800, 600);
+    glViewport(RSI->ViewportX, RSI->ViewportY, RSI->ViewportWidth, RSI->ViewportHeight);
     // 绑定回调函数
     glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
 
@@ -122,6 +127,7 @@ int main()
         TestApp.Update(window, deltaTime);
 
         TestApp.ClearRender(window);
+        TestApp.RenderImGUI(window);
         TestApp.Render(window);
 
         glfwSwapBuffers(window);    // 交换缓冲区

+ 15 - 11
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/testModule/TestBase.cpp

@@ -10,16 +10,6 @@ void TestBase::OnExit(GLFWwindow* window)
 
 void TestBase::Update(GLFWwindow* window, float delayTime)
 {
-    // 设置 ImGUI 新一帧
-    ImGui_ImplOpenGL3_NewFrame();
-    ImGui_ImplGlfw_NewFrame();
-    ImGui::NewFrame();
-
-    UpdateImGUI(window);
-
-    // 绘制 ImGUI
-    ImGui::Render();
-    ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
 
     UpdateLogic(delayTime);
 }
@@ -33,6 +23,20 @@ void TestBase::Render(GLFWwindow* window)
 {
 }
 
+void TestBase::RenderImGUI(GLFWwindow* window)
+{
+	// 璁剧疆 ImGUI 鏂颁竴甯�
+	ImGui_ImplOpenGL3_NewFrame();
+	ImGui_ImplGlfw_NewFrame();
+	ImGui::NewFrame();
+
+	UpdateImGUI(window);
+
+	// 缁樺埗 ImGUI
+	ImGui::Render();
+	ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
+}
+
 void TestBase::UpdateImGUI(GLFWwindow* window)
 {
 
@@ -44,7 +48,7 @@ void TestBase::UpdateLogic(float delayTime)
 
 void TestBase::InputProcess(GLFWwindow* window)
 {
-    // 监听 ECS 按键
+    // 鐩戝惉 ECS 鎸夐敭
     if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
         glfwSetWindowShouldClose(window, true);
 }

+ 10 - 7
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/testModule/TestBase.h

@@ -7,26 +7,29 @@ class TestBase
 public:
 	virtual ~TestBase() = default;
 
-	// ½øÈë²âÊÔ ³õʼ»¯Âß¼­
+	// 进入测试 �始化逻辑
 	virtual void OnEnter(GLFWwindow* window);
-	// Í˳ö²âÊÔ ÇåÀíÂß¼­
+	// 退出测试 清�逻辑
 	virtual void OnExit(GLFWwindow* window);
 
 	void Update(GLFWwindow* window, float delayTime);
 	
-	// ×Ô¶¨Òå glClear Âß¼­
+	// 自定义 glClear 逻辑
 	virtual void ClearRender(GLFWwindow* window);
 
-	// ×Ô¶¨Òå äÖȾÂß¼­
+	// 自定义 渲染逻辑
 	virtual void Render(GLFWwindow* window);
+	
+	// 自定义 渲染逻辑
+	void RenderImGUI(GLFWwindow* window);
 
-	// ×Ô¶¨Òå imGUI 
+	// 自定义 imGUI 
 	virtual void UpdateImGUI(GLFWwindow* window);
 	
-	// ×Ô¶¨Òå ¼ÆËãÂß¼­
+	// 自定义 计算逻辑
 	virtual void UpdateLogic(float delayTime);
 
-	// Êä³ö¼àÌýʼþ
+	// 输出监�事件
 	virtual void InputProcess(GLFWwindow* window);
 };
 

+ 27 - 2
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/testModule/TestPosition.cpp

@@ -1,4 +1,5 @@
 #include "TestPosition.h"
+#include "../Util/RenderSettings.h"
 
 void TestPosition::OnEnter(GLFWwindow* window)
 {
@@ -56,6 +57,10 @@ void TestPosition::OnEnter(GLFWwindow* window)
 	m_Tex2.Bind(1);
 
 	m_Shader.UnBind();
+
+	//m_model = glm::rotate(m_model, glm::radians(-55.0f), glm::vec3(1.0f, 0.0f, 0.0f));
+	//m_view = glm::translate(m_view, m_Transition);
+	//m_proj = glm::perspective(glm::radians(45.0f), (float)RSI->ViewportWidth / (float)RSI->ViewportWidth, 0.1f, 100.0f);
 }
 
 void TestPosition::OnExit(GLFWwindow* window)
@@ -65,7 +70,16 @@ void TestPosition::OnExit(GLFWwindow* window)
 
 void TestPosition::UpdateLogic(float delayTime)
 {
-	
+	glm::vec3 RotateAxis = glm::vec3(0.0f, 0.0f, 0.0f);
+	RotateAxis.r = m_RotateX ? 1.0f : 0.0f;
+	RotateAxis.g = m_RotateY ? 1.0f : 0.0f;
+	RotateAxis.b = m_RotateZ ? 1.0f : 0.0f;
+
+	m_model = glm::rotate(glm::mat4(1.0f), glm::radians(m_Rotate), RotateAxis);
+	m_view = glm::translate(glm::mat4(1.0f), m_Transition);
+
+	// 可能会更新窗口视口大小 每帧更新一下
+	m_proj = glm::perspective(glm::radians(45.0f), (float)RSI->ViewportWidth / (float)RSI->ViewportWidth, 0.1f, 100.0f);
 }
 
 void TestPosition::ClearRender(GLFWwindow* window)
@@ -79,6 +93,10 @@ void TestPosition::Render(GLFWwindow* window)
 	m_Shader.SetUniform1i("u_Texture0", 0);
 	m_Shader.SetUniform1i("u_Texture1", 1);
 
+	m_Shader.SetUniformMat4f("model", m_model);
+	m_Shader.SetUniformMat4f("view", m_view);
+	m_Shader.SetUniformMat4f("projection", m_proj);
+
 	glBindVertexArray(m_VAO);
 	glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
 }
@@ -87,7 +105,14 @@ void TestPosition::UpdateImGUI(GLFWwindow* window)
 {
 	const auto& io = ImGui::GetIO();
 
-	ImGui::Begin("ClearColor");
+	ImGui::Begin("Rotate");
+
+	ImGui::Checkbox("Rotate X", &m_RotateX);
+	ImGui::Checkbox("Rotate Y", &m_RotateY);
+	ImGui::Checkbox("Rotate Z", &m_RotateZ);
+	ImGui::SliderFloat("Rotate Angle", &m_Rotate, -180.0f, 180.0f);
+	ImGui::SliderFloat3("Camera Location", &m_Transition.r, -5.0f, 5.0f);
+
 	ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
 	if (ImGui::Button("Close Window"))
 		glfwSetWindowShouldClose(window, true);

+ 11 - 0
图形学/OpenGL学习/src/OpenGLDemo/OpenGLDemo/src/testModule/TestPosition.h

@@ -26,5 +26,16 @@ private:
 	Texture m_Tex2;
 
 	std::vector<Vertex_v0> m_vertexs;
+
+	glm::mat4 m_model = glm::mat4(1.0f);		// 模型矩阵
+	glm::mat4 m_view = glm::mat4(1.0f);			// 视图矩阵
+	glm::mat4 m_proj = glm::mat4(1.0f);			// 投影矩阵
+
+	glm::vec3 m_Transition = glm::vec3(0.0f, 0.0f, -3.0f);
+
+	float m_Rotate = -45;
+	bool m_RotateX = true;
+	bool m_RotateY = false;
+	bool m_RotateZ = false;
 };