#include "model3d/ModelRenderer.h"#include "model3d/ModelData.h"#include "filesystem/FileData.h"#include "filesystem/Filesystem.h"#include "graphics/IResourceFactory.h"#include "graphics/Material.h"#include "graphics/RenderSystem3D.h"#include "graphics/Texture.h"#include "image/Image.h"#include <assimp/GltfMaterial.h>#include <assimp/material.h>#include <assimp/matrix4x4.h>#include <assimp/mesh.h>#include <assimp/scene.h>#include <algorithm>#include <cmath>#include <cstdio>#include "common/Exception.h"#include <filesystem>#include <limits>#include <memory>#include <string>#include <unordered_map>#include <vector>命名空间 | |
| namespace | eve |
| Build metadata (engine git commit, build time, third-party version). | |
| namespace | eve::model3d |
函数 | |
| Renderable3D * | eve::model3d::buildRenderable (IResourceFactory &gfx, ModelData *model, int meshIndex, const ModelRenderOptions &options) |
| std::vector< Renderable3D * > | eve::model3d::buildRenderables (IResourceFactory &gfx, ModelData *model, const ModelRenderOptions &options) |
| Result< void > | eve::model3d::prepareFoliageDeformation (ModelData &model, int meshIndex, Renderable3D &renderable) |
变量说明
◆ albedo
| Texture* albedo = nullptr |
在文件 ModelRenderer.cpp 第 153 行定义.
◆ alphaCutoff
| float alphaCutoff = 0.5f |
◆ alphaMode
| std::string alphaMode = "OPAQUE" |
在文件 ModelRenderer.cpp 第 159 行定义.
◆ doubleSided
| bool doubleSided = false |
在文件 ModelRenderer.cpp 第 161 行定义.
被这些函数引用 eve::graphics::vulkan::Graphics::configureMeshShaderSurface(), eve::graphics::webgpu::Graphics::configureMeshShaderSurface(), eve::graphics::vulkan::Graphics::drawMeshShadow(), eve::graphics::webgpu::Graphics::drawMeshShadow(), eve::graphics::vulkan::Graphics::drawMeshShadowAlpha(), eve::graphics::webgpu::Graphics::drawMeshShadowAlpha(), eve::asset_graphics::EvpackStaticPrefab::drawShadow(), eve::graphics::exposeShaderScriptBindings(), eve::graphics::vulkan::Graphics::setMesh3DSurface() , 以及 eve::graphics::webgpu::Graphics::setMesh3DSurface().
◆ extendedPbr
| bool extendedPbr = false |
在文件 ModelRenderer.cpp 第 162 行定义.
◆ height
| Texture* height = nullptr |
在文件 ModelRenderer.cpp 第 155 行定义.
◆ metallic
| float metallic = 0.f |
在文件 ModelRenderer.cpp 第 157 行定义.
被这些函数引用 eve::asset_procgen::bindTerrainMaterialGroup(), eve::graphics::vulkan::Graphics::drawMeshGBuffer(), eve::graphics::webgpu::Graphics::drawMeshGBuffer(), eve::graphics::vulkan::Graphics::drawMeshGBufferAlpha(), eve::graphics::webgpu::Graphics::drawMeshGBufferAlpha(), eve::model3d::ModelData::getMaterialMetallicFactor(), eve::procgen::PbrTextureSet::getMetallic(), eve::housegen::HouseLayout::instantiate(), eve::asset_procgen::EvpackTerrainMaterialLoader::load(), eve::asset_import::prepareUnityMaterial(), eve::graphics::RenderSystem3D::render(), eve::graphics::vulkan::Graphics::setMesh3DMaterial(), eve::graphics::webgpu::Graphics::setMesh3DMaterial(), eve::graphics::Material::setMetallic() , 以及 eve::graphics::Renderable3D::setMetallic().
◆ normal
| Texture* normal = nullptr |
在文件 ModelRenderer.cpp 第 154 行定义.
被这些函数引用 eve::procgen::prototype_detail::addCylinder(), eve::physics::Rope3D::addPlaneCollider(), eve::combat::MeleeHitRuntime::advance(), eve::scene_editor::ScenePhysicsPlacementBackend::alignHandleToSurface(), eve::procgen::applyTerrainObjectsMultiTile(), eve::climbing::bakeClimbingAnchorGraph(), eve::graphics::GrassField::bakeFoliagePoints(), eve::procgen::bakeGtsDetailSurface(), eve::procgen::bakeGtsGeologicalSurface(), eve::procgen::bakeGtsWeatherPbr(), eve::procgen::bakeTerrainGrassFoliage(), eve::decal_editing::DecalGizmoPreviewService::build(), eve::procgen::TerrainMeshBuilder::build(), eve::graphics::VirtualTextureBlend::buildResidentSet(), eve::buildingfx::BuildingFx::buildSurfaceCurveMesh(), eve::asset_procgen::buildTerrainMaterialAtlases(), eve::asset_graphics::VegetationAsset::createGpuFieldMesh(), eve::physics::SoftBody3DRenderer::draw(), eve::graphics::PrimitiveSceneCanvas3D::drawArc(), eve::graphics::vulkan::Graphics::drawDecal(), eve::graphics::webgpu::Graphics::drawDecal(), eve::graphics::PrimitiveSceneCanvas3D::drawDisk(), eve::graphics::vulkan::Graphics::drawTexturedRectLitUV(), eve::graphics::webgpu::Graphics::drawTexturedRectLitUV(), eve::graphics::vulkan::Graphics::drawTexturedRectLitUVRotated(), eve::graphics::webgpu::Graphics::drawTexturedRectLitUVRotated(), eve::physics::World3D::emitContactEvents(), eve::asset_graphics::evaluateVegetationSceneElementPixel(), eve::procgen::exportTerrainObjectPoints(), eve::procgen::exposeTerrainGrassAdapter(), eve::procgen::Procgen::generateNormalImageHandle(), eve::procgen::PbrTextureSet::getNormal(), eve::asset_procgen::EvpackTerrainMaterialLoader::load(), eve::card::CardPlaneMapper::mapRay(), eve::physics::DistanceField3D::moveCapsule(), eve::physics::World::pointProbe(), eve::stylize::prepareTrailUpload(), eve::asset_import::prepareUnrealM4Import(), eve::climbing::ClimbingRuntime::probeInto(), eve::decal_editing::DecalRuntimeBinding::publish(), eve::fluids::VolumeFluid::queryBatch(), eve::physics::World3D::queryBodyContacts(), eve::fluids::VolumeFluid::queryBox(), eve::fluids::VolumeFluid::querySphere(), eve::physics::World::rayCast(), eve::fluids::VolumeFluid::raycast(), eve::physics::World3D::rayCastOwned(), eve::climbing::ClimbingAnchorGraphInstance::resolveNodeKinematics(), eve::graphics::resolvePrimitiveStrokes3D(), eve::building::StaticMeshSurface::sample(), eve::graphics::vulkan::Graphics::setMesh3DNormalTexture(), eve::graphics::webgpu::Graphics::setMesh3DNormalTexture(), eve::graphics::GBuffer::setTargets(), eve::decal::Decal::setTextures(), eve::decal::DecalManager::setTextures(), eve::physics::World3D::sphereCast(), eve::gpuagents::PetalSolver::step(), eve::fluids::VolumeFluidShadowCaster::update(), eve::decal_editing::DecalDocumentTarget::validate() , 以及 eve::graphics::validatePbrSurface().
◆ pbr
| graphics::PbrSurface pbr |
在文件 ModelRenderer.cpp 第 163 行定义.
被这些函数引用 eve::graphics::applyVegetationSurface() , 以及 eve::procgen::generatePbrSet().
◆ roughness
| float roughness = 0.45f |
在文件 ModelRenderer.cpp 第 158 行定义.
被这些函数引用 eve::decal::bakeProceduralDecal(), eve::graphics::buildGgxCubemapMipChain(), eve::procgen::closeCaveDensityBoundary(), eve::graphics::vulkan::Graphics::drawMeshGBuffer(), eve::graphics::webgpu::Graphics::drawMeshGBuffer(), eve::graphics::vulkan::Graphics::drawMeshGBufferAlpha(), eve::graphics::webgpu::Graphics::drawMeshGBufferAlpha(), eve::graphics::vulkan::Graphics::filterHDRReflectionCubemap(), eve::graphics::webgpu::Graphics::filterHDRReflectionCubemap(), eve::model3d::ModelData::getMaterialRoughnessFactor(), eve::procgen::PbrTextureSet::getRoughness(), eve::graphics::cubemap_prefilter_detail::importanceSample(), eve::housegen::HouseLayout::instantiate(), eve::graphics::RenderSystem3D::render(), eve::graphics::vulkan::Graphics::setMesh3DMaterial(), eve::graphics::webgpu::Graphics::setMesh3DMaterial(), eve::graphics::Material::setRoughness() , 以及 eve::graphics::Renderable3D::setRoughness().
◆ ta
| float ta = 1.f |
在文件 ModelRenderer.cpp 第 156 行定义.
◆ tb
| float tb = 1.f |
在文件 ModelRenderer.cpp 第 156 行定义.
被这些函数引用 eve::prof::Profiler::frameMark(), eve::model3d::ModelData::mapSurfacePointToUv(), eve::graphics::RenderSystem3D::render(), eve::prof::Profiler::reset(), eve::graphics::Mesh::validateTangentFrame(), eve::prof::Profiler::zoneBegin() , 以及 eve::prof::Profiler::zoneEnd().
◆ tg
| float tg = 1.f |
在文件 ModelRenderer.cpp 第 156 行定义.
◆ tr
| float tr = 1.f |
在文件 ModelRenderer.cpp 第 156 行定义.
被这些函数引用 eve::animation::AnimStateMachine::addBoolCondition(), eve::animation::AnimStateMachine::addFloatCondition(), eve::graphics::Batcher::addRectRotated(), eve::graphics::Batcher::addTexturedRectRotated(), eve::animation::AnimStateMachine::addTransition(), eve::animation::AnimStateMachine::addTriggerCondition(), eve::buildingfx::BuildingFx::drawGrid3D(), eve::map::dualGridMaskAt(), eve::map::dualGridMaskFromCorners(), eve::animation::Tween::evaluate(), eve::procgen::generateCastleMesh(), eve::procgen::urban::generateSplitCandidates(), eve::animation::Tween::get(), eve::animation::Tween::getDelta(), eve::animation::Tween::getFrom(), eve::animation::Tween::getTo(), eve::graphics::RenderSystem3D::render(), eve::animation::Tween::reset(), eve::decision::DecisionContext::restoreJson(), eve::animation::Tween::setDelta(), eve::animation::Tween::setDeltaAngle(), eve::animation::AnimStateMachine::setExitTime(), eve::animation::Tween::setFrom(), eve::animation::Tween::setFromAngle(), eve::animation::Tween::setTo(), eve::animation::Tween::setToAngle(), eve::gpuagents::AgentInstanceRenderer::sync() , 以及 eve::buildingfx::BuildingFx::updateGhost().