在通过 D3DXMatrixTransformation2D()
和 texture->SetTransform()
转换(旋转和缩放)后,如何访问纹理的已转换像素数据?
我正在尝试进行 2D 像素完美碰撞检测,如果您只能使用 texture->LockRect()
访问未转换的像素数据,这是不可能的。
有人有什么想法吗?
最佳答案
这样不会达到你想要的结果。使用 SetTransform
方法,您可以设置在绘制纹理之前应用的转换。所以它不会变形你的图像,你可以读出像素值。
您可以做的是将世界坐标投影到纹理的 UV 坐标,然后读出相应的像素值并进行比较,然后在那里进行碰撞解决。
我猜你使用了你通过 D3DXMatrixTransformation2D()
创建的矩阵的逆矩阵。
关于c++ - 访问转换纹理的像素数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526248/