c++ - 如何在给定位置和半径的情况下在 D3D11 中绘制球体?

标签 c++ graphics direct3d direct3d11

要绘制一个球体,除了它的位置和半径外,不需要知道任何其他信息。因此,除非您需要逐顶点颜色或其他此类功能,否则通过传递三角形网格来渲染球体听起来效率很低。尽管谷歌搜索,搜索D3D11 documentation和阅读 Introduction to 3D Programming with DirectX 11 , 没看懂

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

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

最佳答案

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

关于c++ - 如何在给定位置和半径的情况下在 D3D11 中绘制球体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54400613/

相关文章:

c++ - *&++i 会在 C++03 中导致未定义的行为吗?

java - 在 Java 中为网格创建绘制矩形(填充为黑色)函数

c++ - DirectX 11 GetDisplayModeList() 在远程桌面连接中失败

windows-8 - VS2010项目中的DirectXMath和Win8 SDK

c++ - 声明一个 union 指针,里面有一个指针

c++ - Windows Python C 扩展仅适用于我自己的 Python 构建(使用 VC++ 2008 Express 的 32 位构建)

c++ - 对各种缓冲区的线程访问

c++ - 保存为二进制文件的灰度图像上的 LoG 滤波器

opengl - 如何从旋转和平移矩阵中比较两个对象的姿势和位置?

c++ - Win10 的 DirectX SDK 在哪里?