#include "graphics/RenderSystem3D.h"#include "common/RenderTrace.h"#include "graphics/AmbientOcclusion.h"#include "graphics/ClipSpace.h"#include "graphics/ClusteredLight.h"#include "graphics/Graphics.h"#include "graphics/Light.h"#include "graphics/Material.h"#include "graphics/Outline.h"#include "graphics/RenderControl.h"#include "graphics/Shadow.h"#include <algorithm>#include <cmath>#include <glm/gtc/matrix_inverse.hpp>#include <glm/gtc/matrix_transform.hpp>#include <vector>命名空间 | |
| namespace | eve |
| namespace | eve::graphics |
| 卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局参数。 数据模型与渲染/交互逻辑见 CardTypes.h。 | |
变量说明
◆ camIdx
| int camIdx = 0 |
在文件 RenderSystem3D.cpp 第 534 行定义.
◆ cascadeMask
| uint32_t cascadeMask = 0 |
在文件 RenderSystem3D.cpp 第 535 行定义.
◆ clustered
| ClusteredLightingUpload clustered {} |
在文件 RenderSystem3D.cpp 第 491 行定义.
◆ clusteredUploaded
| bool clusteredUploaded = false |
Whether the clustered SSBOs were uploaded for this camera this frame.
在文件 RenderSystem3D.cpp 第 494 行定义.
◆ clusteredValid
| bool clusteredValid = false |
在文件 RenderSystem3D.cpp 第 492 行定义.
◆ data
| Camera3D::Data* data = nullptr |
在文件 RenderSystem3D.cpp 第 51 行定义.
◆ distSq
| float distSq = 0.f |
在文件 RenderSystem3D.cpp 第 533 行定义.
◆ eye
| glm::vec3 eye {0.f} |
在文件 RenderSystem3D.cpp 第 484 行定义.
被这些函数引用 eve::graphics::buildDirectionalCSM(), eve::scene::Scene::collectFrustumIdsAt(), eve::spritestack::SpriteStackBatch::render(), eve::spritestack::SpriteStack3D::render(), eve::graphics::RenderSystem3D::renderToCanvas(), eve::graphics::Camera3D::screenToRay(), eve::dev::SceneInspect::setCameraPose(), eve::graphics::vulkan::Graphics::setMesh3DCameraPos(), eve::graphics::webgpu::Graphics::setMesh3DCameraPos(), eve::dev::SceneInspect::visibleEntitiesJson() , 以及 eve::camera::CameraController::~CameraController().
◆ fovRad
| float fovRad = 1.f |
在文件 RenderSystem3D.cpp 第 489 行定义.
被这些函数引用 eve::graphics::RenderSystem3D::render(), eve::spritestack::SpriteStackBatch::render(), eve::spritestack::SpriteStack3D::render(), eve::graphics::RenderSystem3D::renderToCanvas(), eve::graphics::Camera3D::screenToRay(), eve::graphics::AmbientOcclusion::setCamera(), eve::graphics::GlobalIllumination::setCamera(), eve::graphics::ScreenSpaceReflection::setCamera() , 以及 eve::graphics::Volumetric::setCamera().
◆ frustum
| FrustumPlanes frustum |
在文件 RenderSystem3D.cpp 第 488 行定义.
◆ hair
| bool hair = false |
在文件 RenderSystem3D.cpp 第 538 行定义.
被这些函数引用 eve::graphics::Material::setHair() , 以及 eve::graphics::Renderable3D::setHair().
◆ inDefaultView
| bool inDefaultView = false |
在文件 RenderSystem3D.cpp 第 537 行定义.
◆ inView
| bool inView = false |
在文件 RenderSystem3D.cpp 第 536 行定义.
◆ isPoint
| bool isPoint = true |
在文件 RenderSystem3D.cpp 第 52 行定义.
◆ lighting
| Lighting3DPack lighting {} |
在文件 RenderSystem3D.cpp 第 490 行定义.
◆ material
| Material* material = nullptr |
◆ mesh
| Mesh* mesh = nullptr |
在文件 RenderSystem3D.cpp 第 527 行定义.
被这些函数引用 eve::graphics::vulkan::Graphics::bakeMeshMorph(), eve::graphics::webgpu::Graphics::bakeMeshMorph(), eve::animation::AnimLattice::bindModel(), eve::graphics::grass::buildBillboards(), eve::procgen::Procgen::buildMesh(), eve::graphics::vulkan::Graphics::drawMesh(), eve::graphics::webgpu::Graphics::drawMesh(), eve::graphics::vulkan::Graphics::drawMeshGBuffer(), eve::graphics::webgpu::Graphics::drawMeshGBuffer(), eve::graphics::vulkan::Graphics::drawMeshGBufferAlpha(), eve::graphics::webgpu::Graphics::drawMeshGBufferAlpha(), eve::graphics::vulkan::Graphics::drawMeshShader(), eve::graphics::webgpu::Graphics::drawMeshShader(), eve::graphics::vulkan::Graphics::drawMeshShadow(), eve::graphics::webgpu::Graphics::drawMeshShadow(), eve::graphics::vulkan::Graphics::drawMeshShadowAlpha(), eve::graphics::webgpu::Graphics::drawMeshShadowAlpha(), eve::animation::AnimSkin::fromModel(), eve::animation::AnimLattice::fromModel(), eve::housegen::HouseLayout::instantiate(), eve::graphics::webgpu::Graphics::newMeshFromArrays(), eve::graphics::vulkan::Graphics::newMeshFromAssimp(), eve::graphics::webgpu::Graphics::newMeshFromAssimp(), eve::graphics::vulkan::Graphics::newMeshFromAssimp(), eve::graphics::webgpu::Graphics::newMeshFromAssimp(), eve::graphics::Graphics::releaseMesh(), eve::graphics::vulkan::Graphics::releaseMesh(), eve::graphics::webgpu::Graphics::releaseMesh(), eve::avatar::AvatarInstance::setMesh(), eve::graphics::Renderable3D::setMesh(), eve::graphics::Renderable3D::setMeshLod(), eve::graphics::Renderable3D::setPart(), eve::graphics::vulkan::Graphics::updateMeshVertices() , 以及 eve::graphics::webgpu::Graphics::updateMeshVertices().
◆ model
| glm::mat4 model {1.f} |
在文件 RenderSystem3D.cpp 第 530 行定义.
被这些函数引用 eve::animation::AnimLattice::bindModel(), eve::model3d::buildRenderable(), eve::model3d::buildRenderables(), eve::model3d::Model3D::createRenderable(), eve::graphics::GrassField::draw(), eve::graphics::vulkan::Graphics::drawMesh(), eve::graphics::webgpu::Graphics::drawMesh(), eve::graphics::vulkan::Graphics::drawMeshGBuffer(), eve::graphics::webgpu::Graphics::drawMeshGBuffer(), eve::graphics::vulkan::Graphics::drawMeshGBufferAlpha(), eve::graphics::webgpu::Graphics::drawMeshGBufferAlpha(), eve::graphics::vulkan::Graphics::drawMeshShader(), eve::graphics::webgpu::Graphics::drawMeshShader(), eve::animation::AnimSkin::fromModel(), eve::animation::AnimLattice::fromModel(), eve::animation::AnimImporter::getAnimationCountFromModel(), eve::animation::AnimImporter::getAnimationNameFromModel(), eve::housegen::HouseLayout::instantiate(), eve::animation::AnimImporter::loadClipFromModel(), eve::housegen::HouseComponentLibrary::loadFromFile(), eve::animation::AnimImporter::loadSkeletonFromModel(), eve::animation::Animation::newClipFromModel(), eve::animation::Animation::newLatticeFromModel(), eve::animation::Animation::newSkeletonFromModel(), eve::animation::Animation::newSkinFromModel(), eve::graphics::RenderSystem3D::render(), eve::graphics::RenderSystem3D::renderToCanvas(), eve::virtualgeometry::VirtualGeometryRenderer::setCamera(), eve::dev::RenderVision::setModel(), eve::graphics::Material::setShadingModel(), eve::spritestack::SpriteStack::sliceModel() , 以及 eve::spritestack::sliceModelToLayers().
◆ mr
| Renderable3D::MeshRenderer* mr = nullptr |
在文件 RenderSystem3D.cpp 第 526 行定义.
被这些函数引用 eve::graphics::Renderable3D::clearMeshLod(), eve::graphics::Renderable3D::clearParts(), eve::graphics::Renderable3D::getPartMaterial(), eve::graphics::Renderable3D::getPartMesh(), eve::graphics::Renderable3D::getPartName(), eve::graphics::RenderSystem3D::render(), eve::graphics::RenderSystem3D::renderToCanvas(), eve::graphics::Renderable3D::setMeshLod(), eve::graphics::Renderable3D::setParallax(), eve::graphics::Renderable3D::setPart(), eve::graphics::Renderable3D::setTexCellBomb(), eve::graphics::Renderable3D::setTint() , 以及 eve::buildingfx::BuildingFx::updateGhost().
◆ p
| glm::vec4 p[6] {} |
在文件 RenderSystem3D.cpp 第 444 行定义.
被这些函数引用 eve::scene::aabbIntersectsFrustum(), eve::graphics::grass::buildBillboards(), eve::graphics::buildDirectionalCSM(), eve::network::NetRpc::call(), eve::ui::EditorHost::capture(), eve::dev::Snapshot::captureState(), eve::graphics::clampParallaxParams(), eve::physics::Cloth::Cloth(), eve::scene::cornerInsideClip(), eve::cmd::Cmdline::Create(), eve::animation::AnimLattice::deformNormals(), eve::animation::AnimLattice::deformPositions(), eve::voxel::VoxelWorld::deserializeWorld(), eve::animation::AnimTrail::draw(), eve::physics::Cloth::draw(), eve::physics::Fluid::draw(), eve::physics::Fluid::emit(), eve::ModuleManager::find(), eve::scene::SceneHost::findIndexByPath(), eve::animation::AnimSkin::fromModel(), eve::procgen::PbrParams::fromParams(), eve::procgen::generateLinearStructure(), eve::procgen::generateRockMesh(), eve::animation::SpineSkeleton::getBoneWorldMatrix(), eve::rpg::SkillSystem::getCastProgress(), eve::editor::TransformGizmo::getMatrix(), eve::scene::SceneNodeRef::getParentId(), eve::scene::Scene::getParentId(), eve::image::ImageData::getPixel(), eve::graphics::webgpu::Graphics::getPixelImpl(), eve::system::System::getPlatform(), eve::physics::Cloth::grabAt(), eve::graphics::RenderControl::hasPass(), eve::voxel::Frustum::intersectsAABB(), eve::sceneloader::SceneLoader::loadAsync(), eve::ui::EditorHost::loadEditorsFromDisk(), eve::animation::SpineAtlas::loadFromText(), eve::scene::Scene::localToWorldAt(), eve::physics::Cloth::moveGrab(), eve::graphics::webgpu::Graphics::newMeshFromAssimp(), eve::network::UdpLink::onDatagram(), eve::tensor::optimizeGraph(), eve::graphics::orthoVulkanRH_ZO(), eve::graphics::grass::packSwayAtlasRGBA(), eve::graphics::perspectiveVulkanRH_ZO(), eve::dialogue::Dialogue::pickLine(), eve::grid::GridConfig::planeName(), eve::dialogue::Dialogue::playLine(), eve::dialogue::Dialogue::playPool(), eve::filesystem::HotReload::pollRemoteChange(), ssq::detail::popValue(), eve::editor::Brush::previewAt(), eve::sceneloader::SceneLoader::prewarmAsync(), eve::tensor::q::quantize(), eve::tensor::TF::quantizeWeight(), eve::network::TcpSocket::queueSend(), eve::editor::TransformGizmo::rebuildParts(), eve::ModuleManager::register_module(), eve::procgen::registerLinearStructureRecipes(), eve::graphics::RenderSystem3D::render(), eve::particles::ParticleEmitter::reset(), eve::dev::Snapshot::restoreState(), eve::cmd::Cmdline::runArgs(), eve::particles::ParticleGradient::sample(), eve::particles::ParticleCurve::sample(), eve::graphics::grass::sampleHalton(), eve::graphics::grass::samplePoisson(), eve::network::UdpLink::send(), eve::virtualgeometry::VirtualGeometryRenderer::setCamera(), eve::ui::EditorHost::setEditorValue(), eve::physics::Cloth::setParticlePosition(), eve::daynight::DayNight::setPaused(), eve::audio::Source::setPitch(), eve::image::ImageData::setPixel(), eve::animation::AnimLattice::setPointOffset(), eve::animation::AnimLattice::setPointScale(), eve::dialogue::Dialogue::setRandomSeed(), eve::animation::AnimLattice::setScale(), eve::animation::SpineSkeleton::setToSetupPose(), eve::spritestack::sliceModelToLayers(), eve::particles::spawnParticleAt(), eve::particles::stepEmitterSim(), eve::particles::stepEmitterSimGpu(), eve::graphics::texCellBombSampleUV(), eve::particles::ParticleLightSystem::update(), eve::animation::AnimTrail::update(), eve::physics::Cloth::update(), eve::physics::Fluid::update(), eve::animation::SpineSkeleton::updateWorldTransform(), eve::scene::SceneHost::walkAncestors(), eve::scene::NodeDesc::withRotation(), eve::scene::worldBoundsOf() , 以及 eve::scene::Scene::worldToLocalAt().
◆ proj
| glm::mat4 proj {1.f} |
在文件 RenderSystem3D.cpp 第 486 行定义.
被这些函数引用 eve::virtualgeometry::VirtualGeometryRenderer::setCamera(), eve::graphics::AmbientOcclusion::setCamera(), eve::graphics::GlobalIllumination::setCamera(), eve::graphics::ScreenSpaceReflection::setCamera(), eve::graphics::Volumetric::setCamera() , 以及 eve::virtualgeometry::VirtualGeometryRenderer::setCameraSimple().
◆ shader
| Shader* shader = nullptr |
在文件 RenderSystem3D.cpp 第 529 行定义.
被这些函数引用 eve::graphics::grass::bindAtlasLayout(), eve::graphics::grass::bindDefaults(), eve::graphics::hair::bindDefaults(), eve::graphics::grass::bindLayer(), eve::stylize::bindMeshUniforms(), eve::stylize::bindPostUniforms(), eve::gpgpu::Gpgpu::dispatch(), eve::graphics::vulkan::Graphics::drawMeshShader(), eve::graphics::webgpu::Graphics::drawMeshShader(), eve::graphics::vulkan::Graphics::drawTexturedRectShader(), eve::graphics::webgpu::Graphics::drawTexturedRectShader(), eve::graphics::vulkan::Graphics::drawTexturedRectShaderDepth(), eve::graphics::webgpu::Graphics::drawTexturedRectShaderDepth(), eve::graphics::vulkan::Graphics::drawTexturedRectShaderUV(), eve::graphics::webgpu::Graphics::drawTexturedRectShaderUV(), eve::graphics::vulkan::Graphics::drawTexturedRectShaderUVRotated(), eve::graphics::webgpu::Graphics::drawTexturedRectShaderUVRotated(), eve::stylize::Stylize::newPassFromShader(), eve::gpgpu::Sequence::recordDispatch(), eve::graphics::Graphics::releaseShader(), eve::graphics::vulkan::Graphics::releaseShader(), eve::graphics::webgpu::Graphics::releaseShader(), eve::graphics::RenderSystem3D::render(), eve::graphics::RenderSystem3D::renderToCanvas(), eve::graphics::grass::setFrameDuration(), eve::gpgpu::ShaderSystem::setShader(), eve::particles::ParticleEmitter::setShader(), eve::graphics::Graphics::setShader(), eve::graphics::Material::setShader(), eve::graphics::Renderable3D::setShader(), eve::graphics::grass::setTime(), eve::graphics::Renderable3D::setXRayShader(), eve::particles::stepEmitterSimGpu(), eve::gpgpu::vulkanDispatch(), eve::gpgpu::vulkanNewShaderFromSpirv(), eve::gpgpu::vulkanSequenceRecordDispatch(), eve::gpgpu::vulkanSequenceSubmit(), eve::gpgpu::webgpuDispatch() , 以及 eve::gpgpu::webgpuNewShaderFromWgsl().
◆ view
| glm::mat4 view {1.f} |
在文件 RenderSystem3D.cpp 第 485 行定义.
被这些函数引用 eve::graphics::buildClusteredLighting(), eve::card::captureCardState(), eve::map::TileRenderSystem::collect(), eve::graphics::RenderSystem::collectSprites(), eve::gpgpu::countViewEntities(), eve::graphics::Volumetric::drawOccluders2D(), eve::ui::UISystem::findHost(), eve::ui::UISystem::findHostByOwner(), eve::particles::Particles::getEmitterCount(), eve::map::Map::getLayerCount(), eve::gpgpu::packViewComponent(), eve::map::TileConfigSystem::poll(), eve::particles::ParticleConfigSystem::poll(), eve::ui::UISystem::render(), eve::graphics::RenderSystem3D::render(), eve::particles::ParticleRenderSystem::render(), eve::graphics::RenderSystem3D::renderToCanvas(), eve::card::resetCardState(), eve::card::restoreCardState(), eve::virtualgeometry::VirtualGeometryRenderer::setCamera(), eve::graphics::AmbientOcclusion::setCamera(), eve::graphics::GlobalIllumination::setCamera(), eve::graphics::ScreenSpaceReflection::setCamera(), eve::graphics::Volumetric::setCamera(), eve::virtualgeometry::VirtualGeometryRenderer::setCameraSimple(), eve::graphics::vulkan::Graphics::setMesh3DView(), eve::graphics::webgpu::Graphics::setMesh3DView(), eve::gpgpu::unpackViewComponent(), eve::particles::ParticleLightSystem::update(), eve::particles::ParticleSimSystem::update() , 以及 eve::scene::TransformSystem::updateAll().
◆ viewProj
| glm::mat4 viewProj {1.f} |
◆ worldC
| glm::vec3 worldC {0.f} |
在文件 RenderSystem3D.cpp 第 531 行定义.
◆ worldR
| float worldR = 0.f |
在文件 RenderSystem3D.cpp 第 532 行定义.
◆ xray
| bool xray = false |
在文件 RenderSystem3D.cpp 第 539 行定义.