好吧,这是一个很难回答的问题。我正在一个顶点数组中创建一个立方体和一个金字塔。我的问题是只旋转金字塔顶点而不是立方体顶点,但我不知道任何可以旋转某个顶点的函数。如果我尝试旋转顶点,我会得到金字塔和立方体旋转。directx rotation C++
1
A
回答
2
要么
- 把立方体和 不同顶点数组金字塔并使用 不同的变换来呈现每个阵列
或
- 申请的旋转在一个顶点 着色器,并通过一些辅助 每个顶点信息h让顶点 着色器决定是否应将每个顶点 视为多维数据集或金字塔的一部分(即,在每种情况下应用不同的变换)。这有点像使用“混合重量”来做“vertex blending”;除非你只对二进制情况感兴趣。
1
首先想到 - 确保金字塔和立方体的顶点在数组中占据单独的非重叠范围。旋转金字塔顶点时,只告诉DirectX该数组的范围(使用基本指针和范围的大小而不是整个数组)。
现在将检查的DirectX API的...
编辑
证实。主要的功能就是...
D3DXVECTOR4 * D3DXVec4TransformArray(D3DXVECTOR4 * pOut,
UINT OutStride,
CONST D3DXVECTOR4* pV,
UINT VStride,
CONST D3DXMATRIX* pM,
UINT n
);
在C++中,数组的子范围是在许多方面本身就是一个数组,或者更重要的是,它主要是只是一个内存块,没有迹象内本身就是它的边界。因此,您只需传入不同的pV
和不同的n
以指示要应用转换的子范围,并且就函数而言,即是整个数组。您可能需要单独复制未转换的部分 - 我期望的memcpy作业。
步幅值通常只是一个向量的大小加上任何对齐填充,但也有可能对此进行“说谎”,并转换数组中的每个第三个向量。
相关问题
- 1. C++ Directx 11环境照明
- 2. Imageview rotation
- 3. Android:canvas.drawoval()+ rotation
- 4. CGAffineTransform rotation
- 5. directx教程C++
- 6. UIView ipad rotation
- 7. Flex,creationComplete和Rotation
- 8. drawAtPoint with rotation
- 9. Draggable UIImgeView Rotation
- 10. actionscript 3 rotation
- 11. CABasic Animation Rotation
- 12. Autoresizingmask,viewWillTransitionToSize和rotation
- 13. CUDA Image Rotation
- 14. Axis Lables Rotation
- 15. C++ directx 9网格纹理
- 16. C#的DirectX性能
- 17. java swt image(imagedata)rotation
- 18. Leaflet Map Clustering + Marker Rotation
- 19. iOS Swift Detecting Image Rotation
- 20. ThreeJS oribital camera short rotation
- 21. 从框中计算AABB(center,halfSize,rotation)
- 22. C#的DirectX精灵起源
- 23. C中的DirectX编程?
- 24. 绘图与C++的DirectX
- 25. C++ DirectX CreateVertexShader COM错误
- 26. DirectX示例代码C++
- 27. uwp directx和c#开发
- 28. DirectX 9地形生成C++
- 29. Directx C++ - 绘制DNA形状
- 30. C++和DirectX的 - 几何题
特别针对顶点着色器+1。把它称为“着色器”对我来说似乎很奇怪,因为这是关于如何将变换融合到骨骼模型的关节中(例如,当腿弯曲时如何处理膝盖)而不是关于颜色/纹理/等,但是我可以'我想你应该怪你。 – Steve314 2010-09-24 20:56:15
我知道你的意思;大多数科学和工程领域都被赋予了奇怪的命名法,这种命名法有一次是有道理的,但现在看起来很不正常(天文学的“行星状星云”特别使我感到不安)。 – timday 2010-09-24 21:11:14