作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请告诉我应该为 D3DRS_POINTSCALE_A、D3DRS_POINTSCALE_B、D3DRS_POINTSCALE_С 设置什么值,以便点 Sprite 像场景中的其他对象一样缩放。参数 A = 0 B = 0 和 C = 1(由 F. D. Luna 提出)不合适,因为比例不够准确,并且粒子(点 Sprite )之间的距离可能大于应有的距离。如果我将点 Sprite 替换为广告牌,粒子的比例是正确的,但渲染速度要慢得多。请帮助我,因为渲染粒子的速度对我的任务非常重要,但它们比例的精确度也非常重要。
Direct3D 根据以下公式计算屏幕空间点大小: MSDN - Point Sprites我不明白应该为 A、B、C 设置什么值才能正确缩放
附言对不起我的英语我来自俄罗斯
最佳答案
Directx 使用此函数来确定点的缩放大小:
out_scale = viewport_height * in_scale * sqrt( 1/( A + B * eye_distance + C * (eye_distance^2) ) )
eye_distance 产生于:
eye_position = sqrt(X^2 + Y^2 + Z^2)
所以回答你的问题:
D3DRS_POINTSCALE_A 是常量
D3DRS_POINTSCALE_B 是线性元素(缩放 eye_distance)和
D3DRS_POINTSCALE_C 是二次元素(缩放 eye_distance 的平方)。
关于directx - 点 Sprite 的缩放 (Direc3D 9),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988130/
我是一名优秀的程序员,十分优秀!