gpt4 book ai didi

c++ - DirectX 9 固定功能纹理

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:04 24 4
gpt4 key购买 nike

使用 DirectX 9 中的固定函数渲染管道,通过执行以下操作可以很容易地设置纹理和渲染顶点:

struct vert { float x, y, z, u, v; };

device->SetFVF(D3DFVF_XYZ | D3DFVF_TEX1);
device->SetTexture(0, MyTexture);

//Draw vertices here

但是,我想为每个顶点添加一个额外的浮点值,然后将其乘以从纹理输出的结果颜色。 (因此该值将介于 0 和 1 之间)

EG(伪代码)Colour = TextureColour(u, v) * CustomFloat

我认为有一种使用 device->SetTextureStageState 的方法,但我不确定该怎么做...有人可以帮助我吗?

最佳答案

您可以将 1D 线性灰度纹理设置为第二个纹理,配置为调制第一个。然后为第二个纹理发送单个纹理坐标(我认为通过为它指定 D3DFVF_TEXCOORDSIZE1)。此处推测 -- 我自己还没有尝试过。

解释一下你的伪代码:Colour = Texture0Colour(u0, v0) * Texture1Colour(u1)

编辑我认为你需要:

device->SetFVF(D3DFVF_XYZ | D3DFVF_TEX2 | D3DFVF_TEXCOORDSIZE2(0) | D3DFVF_TEXCOORDSIZE1(1)) 

MSDN 也有a similar example .

关于c++ - DirectX 9 固定功能纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246215/

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