gpt4 book ai didi

directx - 点 Sprite 的缩放 (Direc3D 9)

转载 作者:行者123 更新时间:2023-12-05 01:18:30 25 4
gpt4 key购买 nike

请告诉我应该为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com