载入中...
搜索中...
未找到
eve::graphics::IGraphics3D类 参考abstract

3D frame / mesh / light / shadow rendering surface. 更多...

#include <IGraphics3D.h>

类 eve::graphics::IGraphics3D 继承关系图:
eve::graphics::Graphics eve::graphics::vulkan::Graphics eve::graphics::webgpu::Graphics

Public 成员函数

virtual ~IGraphics3D ()=default
 Releases IGraphics3D resources.
 
virtual void render3D ()=0
 Renders 3 d.
 
virtual void renderScene3DToCanvas (Canvas *canvas, Camera3D *camera)=0
 Renders scene 3 d to canvas.
 
virtual void setDirectionalLight (float dx, float dy, float dz, float r=1.f, float g=1.f, float b=1.f)=0
 Sets the directional light.
 
virtual void drawScene3DRGBA (float x, float y, float w, float h, float r=1.f, float g=1.f, float b=1.f, float a=1.f)=0
 Draws scene 3 drgba.
 
virtual void drawCanvasRGBA (Canvas *canvas, float x, float y, float w, float h, float r=1.f, float g=1.f, float b=1.f, float a=1.f)=0
 Draws canvas rgba.
 
virtual void begin3DFrame ()=0
 Begins 3 d frame.
 
virtual void begin3DFrameToCanvas (Canvas *canvas)=0
 Begins 3 d frame to canvas.
 
virtual void end3DFrameToCanvas ()=0
 Ends 3 d frame to canvas.
 
virtual void drawPrimitiveScene (const PrimitiveSceneCanvas3D &canvas)=0
 Submits an owning frame-local primitive canvas into the active 3D pass.
 
virtual void setMesh3DViewProj (const glm::mat4 &viewProj)=0
 Sets the mesh 3 d view proj.
 
virtual void setMesh3DView (const glm::mat4 &view)=0
 Sets the mesh 3 d view.
 
virtual void setMesh3DClip (float nearZ, float farZ)=0
 Sets the mesh 3 d clip.
 
virtual void drawMesh (Mesh *mesh, const glm::mat4 &model, Texture *texture, const Color &tint)=0
 Draws mesh.
 
virtual void drawMeshShader (Mesh *mesh, const glm::mat4 &model, Texture *texture, const Color &tint, Shader *shader)=0
 Draws mesh shader.
 
virtual void setMesh3DNormalTexture (Texture *normal)=0
 Sets the mesh 3 d normal texture.
 
virtual void setMesh3DHeightTexture (Texture *height)=0
 Sets the mesh 3 d height texture.
 
virtual void setMesh3DSceneDepth (Texture *depth)=0
 Sets the mesh 3 d scene depth.
 
virtual void setMesh3DSceneColor (Texture *color)=0
 Sets the mesh 3 d scene color.
 
virtual void setMesh3DMaterial (float metallic, float roughness)=0
 Sets the mesh 3 d material.
 
virtual Result< void > setMesh3DPbrSurface (const PbrSurface *surface)
 Copy a validated extended surface for subsequent draws; null resets to legacy shading.
 
virtual void setMesh3DTexCellBomb (float cellScale, float strength, float rotAmount=1.f)=0
 Sets the mesh 3 d tex cell bomb.
 
virtual void setMesh3DParallax (float scale, float minLayers=8.f, float maxLayers=32.f)=0
 Sets the mesh 3 d parallax.
 
virtual void setMesh3DLighting (const Lighting3DPack &pack)=0
 Sets the mesh 3 d lighting.
 
virtual void setMesh3DClusteredLighting (const ClusteredLightingUpload &upload)=0
 Sets the mesh 3 d clustered lighting.
 
virtual void setMesh3DLight (const glm::vec3 &dir, const glm::vec3 &color)=0
 Sets the mesh 3 d light.
 
virtual void setMesh3DCameraPos (const glm::vec3 &eye)=0
 Sets the mesh 3 d camera pos.
 
virtual void setCloudShadows (float strength, float worldCell, float time, float windSpeed, float windAngle, float coverage, float detail)=0
 Sets the cloud shadows.
 
virtual void setMesh3DEnv (Texture *cube, float intensity)=0
 Sets the mesh 3 d env.
 
virtual void setMesh3DEnvProbe (const glm::vec3 &center, const glm::vec3 &extent)=0
 Sets the mesh 3 d env probe.
 
virtual void setMesh3DReflectionProbes (const ReflectionProbeUpload &upload)=0
 Sets the mesh 3 d reflection probes.
 
virtual void setMesh3DShadows (const ShadowUpload &upload)=0
 Sets the mesh 3 d shadows.
 
virtual void setMesh3DShadowReceive (bool receive)=0
 Sets the mesh 3 d shadow receive.
 
virtual void setMesh3DSkinInfluenceLimit (SkinInfluenceLimit count)=0
 Select the influence limit consumed by subsequent mesh draws.
 
virtual void beginShadowPass (int cascadeIndex)=0
 Begins shadow pass.
 
virtual void drawMeshShadow (Mesh *mesh, const glm::mat4 &lightMVP, bool doubleSided=true)=0
 Queue an opaque caster with explicit face-culling policy.
 
virtual void drawMeshShadowAlpha (Mesh *mesh, const glm::mat4 &lightMVP, Texture *albedo=nullptr, bool doubleSided=true, float lodWeight=1.f, bool lodFadeReverse=false, bool lodDither=false)=0
 Queue an alpha-cutout caster with explicit face-culling policy.
 
virtual void endShadowPass ()=0
 Ends shadow pass.
 
virtual void beginGBufferPass (int width, int height)=0
 Begins g buffer pass.
 
virtual void drawMeshGBuffer (Mesh *mesh, const glm::mat4 &mvp, const glm::mat4 &model, float nearZ, float farZ, Texture *albedo=nullptr, float tintR=1.f, float tintG=1.f, float tintB=1.f, float motionX=0.f, float motionY=0.f, float roughness=0.45f, float metallic=0.f)=0
 Draws mesh g buffer.
 
virtual void drawMeshGBufferAlpha (Mesh *mesh, const glm::mat4 &mvp, const glm::mat4 &model, float nearZ, float farZ, Texture *albedo=nullptr, float tintR=1.f, float tintG=1.f, float tintB=1.f, float motionX=0.f, float motionY=0.f, float roughness=0.45f, float metallic=0.f)=0
 Draws mesh g buffer alpha.
 
virtual void endGBufferPass ()=0
 Ends g buffer pass.
 
virtual void drawVoxelFaceInstances (const uint32_t *packed, int count, float originX, float originY, float originZ, const std::string &faceDir, Texture *atlas, int tilesPerRow=16, const uint32_t *ao=nullptr)=0
 Draws voxel face instances.
 

详细描述

3D frame / mesh / light / shadow rendering surface.

在文件 IGraphics3D.h 第 51 行定义.

构造及析构函数说明

◆ ~IGraphics3D()

virtual eve::graphics::IGraphics3D::~IGraphics3D ( )
virtualdefault

Releases IGraphics3D resources.

成员函数说明

◆ begin3DFrame()

virtual void eve::graphics::IGraphics3D::begin3DFrame ( )
pure virtual

◆ begin3DFrameToCanvas()

virtual void eve::graphics::IGraphics3D::begin3DFrameToCanvas ( Canvas *  canvas)
pure virtual

Begins 3 d frame to canvas.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ beginGBufferPass()

virtual void eve::graphics::IGraphics3D::beginGBufferPass ( int  width,
int  height 
)
pure virtual

◆ beginShadowPass()

virtual void eve::graphics::IGraphics3D::beginShadowPass ( int  cascadeIndex)
pure virtual

◆ drawCanvasRGBA()

virtual void eve::graphics::IGraphics3D::drawCanvasRGBA ( Canvas *  canvas,
float  x,
float  y,
float  w,
float  h,
float  r = 1.f,
float  g = 1.f,
float  b = 1.f,
float  a = 1.f 
)
pure virtual

Draws canvas rgba.

在 eve::graphics::Graphics 内被实现.

◆ drawMesh()

virtual void eve::graphics::IGraphics3D::drawMesh ( Mesh *  mesh,
const glm::mat4 &  model,
Texture *  texture,
const Color &  tint 
)
pure virtual

◆ drawMeshGBuffer()

virtual void eve::graphics::IGraphics3D::drawMeshGBuffer ( Mesh *  mesh,
const glm::mat4 &  mvp,
const glm::mat4 &  model,
float  nearZ,
float  farZ,
Texture *  albedo = nullptr,
float  tintR = 1.f,
float  tintG = 1.f,
float  tintB = 1.f,
float  motionX = 0.f,
float  motionY = 0.f,
float  roughness = 0.45f,
float  metallic = 0.f 
)
pure virtual

◆ drawMeshGBufferAlpha()

virtual void eve::graphics::IGraphics3D::drawMeshGBufferAlpha ( Mesh *  mesh,
const glm::mat4 &  mvp,
const glm::mat4 &  model,
float  nearZ,
float  farZ,
Texture *  albedo = nullptr,
float  tintR = 1.f,
float  tintG = 1.f,
float  tintB = 1.f,
float  motionX = 0.f,
float  motionY = 0.f,
float  roughness = 0.45f,
float  metallic = 0.f 
)
pure virtual

Draws mesh g buffer alpha.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ drawMeshShader()

virtual void eve::graphics::IGraphics3D::drawMeshShader ( Mesh *  mesh,
const glm::mat4 &  model,
Texture *  texture,
const Color &  tint,
Shader *  shader 
)
pure virtual

◆ drawMeshShadow()

virtual void eve::graphics::IGraphics3D::drawMeshShadow ( Mesh *  mesh,
const glm::mat4 &  lightMVP,
bool  doubleSided = true 
)
pure virtual

Queue an opaque caster with explicit face-culling policy.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ drawMeshShadowAlpha()

virtual void eve::graphics::IGraphics3D::drawMeshShadowAlpha ( Mesh *  mesh,
const glm::mat4 &  lightMVP,
Texture *  albedo = nullptr,
bool  doubleSided = true,
float  lodWeight = 1.f,
bool  lodFadeReverse = false,
bool  lodDither = false 
)
pure virtual

Queue an alpha-cutout caster with explicit face-culling policy.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ drawPrimitiveScene()

virtual void eve::graphics::IGraphics3D::drawPrimitiveScene ( const PrimitiveSceneCanvas3D &  canvas)
pure virtual

Submits an owning frame-local primitive canvas into the active 3D pass.

参数
canvasSynchronously consumed command snapshot; it is never retained. @thread Render-thread affine and valid only between begin/end 3D frame calls. @reentrancy Does not invoke scripts or caller callbacks.

在 eve::graphics::vulkan::Graphics , 以及 eve::graphics::webgpu::Graphics 内被实现.

被这些函数引用 eve::graphics_editing::PrimitiveGizmoRenderer::render() , 以及 eve::graphics::RenderSystem3D::render().

◆ drawScene3DRGBA()

virtual void eve::graphics::IGraphics3D::drawScene3DRGBA ( float  x,
float  y,
float  w,
float  h,
float  r = 1.f,
float  g = 1.f,
float  b = 1.f,
float  a = 1.f 
)
pure virtual

Draws scene 3 drgba.

在 eve::graphics::Graphics 内被实现.

◆ drawVoxelFaceInstances()

virtual void eve::graphics::IGraphics3D::drawVoxelFaceInstances ( const uint32_t *  packed,
int  count,
float  originX,
float  originY,
float  originZ,
const std::string &  faceDir,
Texture *  atlas,
int  tilesPerRow = 16,
const uint32_t *  ao = nullptr 
)
pure virtual

Draws voxel face instances.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ end3DFrameToCanvas()

virtual void eve::graphics::IGraphics3D::end3DFrameToCanvas ( )
pure virtual

Ends 3 d frame to canvas.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ endGBufferPass()

virtual void eve::graphics::IGraphics3D::endGBufferPass ( )
pure virtual

◆ endShadowPass()

virtual void eve::graphics::IGraphics3D::endShadowPass ( )
pure virtual

◆ render3D()

virtual void eve::graphics::IGraphics3D::render3D ( )
pure virtual

Renders 3 d.

在 eve::graphics::Graphics 内被实现.

◆ renderScene3DToCanvas()

virtual void eve::graphics::IGraphics3D::renderScene3DToCanvas ( Canvas *  canvas,
Camera3D *  camera 
)
pure virtual

Renders scene 3 d to canvas.

在 eve::graphics::Graphics 内被实现.

◆ setCloudShadows()

virtual void eve::graphics::IGraphics3D::setCloudShadows ( float  strength,
float  worldCell,
float  time,
float  windSpeed,
float  windAngle,
float  coverage,
float  detail 
)
pure virtual

◆ setDirectionalLight()

virtual void eve::graphics::IGraphics3D::setDirectionalLight ( float  dx,
float  dy,
float  dz,
float  r = 1.f,
float  g = 1.f,
float  b = 1.f 
)
pure virtual

Sets the directional light.

在 eve::graphics::Graphics 内被实现.

◆ setMesh3DCameraPos()

virtual void eve::graphics::IGraphics3D::setMesh3DCameraPos ( const glm::vec3 &  eye)
pure virtual

Sets the mesh 3 d camera pos.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DClip()

virtual void eve::graphics::IGraphics3D::setMesh3DClip ( float  nearZ,
float  farZ 
)
pure virtual

◆ setMesh3DClusteredLighting()

virtual void eve::graphics::IGraphics3D::setMesh3DClusteredLighting ( const ClusteredLightingUpload &  upload)
pure virtual

Sets the mesh 3 d clustered lighting.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DEnv()

virtual void eve::graphics::IGraphics3D::setMesh3DEnv ( Texture *  cube,
float  intensity 
)
pure virtual

◆ setMesh3DEnvProbe()

virtual void eve::graphics::IGraphics3D::setMesh3DEnvProbe ( const glm::vec3 &  center,
const glm::vec3 &  extent 
)
pure virtual

Sets the mesh 3 d env probe.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DHeightTexture()

virtual void eve::graphics::IGraphics3D::setMesh3DHeightTexture ( Texture *  height)
pure virtual

Sets the mesh 3 d height texture.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DLight()

virtual void eve::graphics::IGraphics3D::setMesh3DLight ( const glm::vec3 &  dir,
const glm::vec3 &  color 
)
pure virtual

Sets the mesh 3 d light.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DLighting()

virtual void eve::graphics::IGraphics3D::setMesh3DLighting ( const Lighting3DPack &  pack)
pure virtual

Sets the mesh 3 d lighting.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DMaterial()

virtual void eve::graphics::IGraphics3D::setMesh3DMaterial ( float  metallic,
float  roughness 
)
pure virtual

Sets the mesh 3 d material.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DNormalTexture()

virtual void eve::graphics::IGraphics3D::setMesh3DNormalTexture ( Texture *  normal)
pure virtual

Sets the mesh 3 d normal texture.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DParallax()

virtual void eve::graphics::IGraphics3D::setMesh3DParallax ( float  scale,
float  minLayers = 8.f,
float  maxLayers = 32.f 
)
pure virtual

Sets the mesh 3 d parallax.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DPbrSurface()

virtual Result< void > eve::graphics::IGraphics3D::setMesh3DPbrSurface ( const PbrSurface *  surface)
inlinevirtual

Copy a validated extended surface for subsequent draws; null resets to legacy shading.

参数
surfaceBorrowed snapshot, consumed synchronously on the graphics thread.
返回
Unsupported when a backend has no extended renderer; reset always succeeds. No pointer to the snapshot is retained; its borrowed textures must outlive queued draws.

Failure.

被 eve::graphics::Graphics, eve::graphics::vulkan::Graphics , 以及 eve::graphics::webgpu::Graphics 重载.

在文件 IGraphics3D.h 第 114 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::Result< T >::success() , 以及 eve::Unsupported.

◆ setMesh3DReflectionProbes()

virtual void eve::graphics::IGraphics3D::setMesh3DReflectionProbes ( const ReflectionProbeUpload &  upload)
pure virtual

Sets the mesh 3 d reflection probes.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DSceneColor()

virtual void eve::graphics::IGraphics3D::setMesh3DSceneColor ( Texture *  color)
pure virtual

Sets the mesh 3 d scene color.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DSceneDepth()

virtual void eve::graphics::IGraphics3D::setMesh3DSceneDepth ( Texture *  depth)
pure virtual

Sets the mesh 3 d scene depth.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DShadowReceive()

virtual void eve::graphics::IGraphics3D::setMesh3DShadowReceive ( bool  receive)
pure virtual

Sets the mesh 3 d shadow receive.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DShadows()

virtual void eve::graphics::IGraphics3D::setMesh3DShadows ( const ShadowUpload &  upload)
pure virtual

Sets the mesh 3 d shadows.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DSkinInfluenceLimit()

virtual void eve::graphics::IGraphics3D::setMesh3DSkinInfluenceLimit ( SkinInfluenceLimit  count)
pure virtual

Select the influence limit consumed by subsequent mesh draws.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DTexCellBomb()

virtual void eve::graphics::IGraphics3D::setMesh3DTexCellBomb ( float  cellScale,
float  strength,
float  rotAmount = 1.f 
)
pure virtual

Sets the mesh 3 d tex cell bomb.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.

◆ setMesh3DView()

virtual void eve::graphics::IGraphics3D::setMesh3DView ( const glm::mat4 &  view)
pure virtual

◆ setMesh3DViewProj()

virtual void eve::graphics::IGraphics3D::setMesh3DViewProj ( const glm::mat4 &  viewProj)
pure virtual

Sets the mesh 3 d view proj.

在 eve::graphics::vulkan::Graphics, eve::graphics::webgpu::Graphics , 以及 eve::graphics::Graphics 内被实现.


该类的文档由以下文件生成: