首页 > 解决方案 > 给定位置和半径,如何在 D3D11 中绘制球体?

问题描述

要绘制一个球体,除了它的位置和半径之外,不需要知道其他任何东西。因此,通过传递三角形网格来渲染球体听起来非常低效,除非您需要逐顶点颜色或其他此类功能。尽管谷歌搜索、搜索D3D11 文档和阅读Introduction to 3D Programming with DirectX 11,但我还是无法理解

  1. 是否可以通过仅将球体的位置和半径传递给 GPU 来绘制球体?
  2. 如果不是,我误解的主要原则是什么?
  3. 如果是,该怎么做?

我的最终目标是稍后传递更多参数,这些参数将被着色器效果使用。

标签: c++graphicsdirect3ddirect3d11

解决方案


您将需要实现几何着色器。此着色器应将球体中心和半径作为输入,并发出一组顶点以进行光栅化。通常,这称为点精灵。


推荐阅读