dev.SetRenderState(RenderState.DestinationBlend, Blend.One);
游戏中每一帧的渲染不是把渲染状态设置死画全部的 根据对应要渲染的对象的需要 调节对应的渲染状态 然后把东西画好 如果想弄清楚 我建议是去好好看看SDK 另外要直观去查看东西如何渲染 不妨用PIX(DX SDK 自带的调试shader工具)去调试一下别人写好的游戏 查看人家每一帧到底都绘制了些什么。这样调节几次相信学的不仅仅是一个setrendersta……
到底会不会啊,!~~
办法1. 固定管线 混合设置成add 1-sc, 1 能够比较接近color key的效果。 2.用ps处理下tex就能达到和color key完全一样的效果 pixel shader o.color=float4(i.color.xyz,clamp(i.color.x+i.color.y+i.color.z,0,1)); blend 设置 ……
混合属性要设置好。 引用 3 楼 dengyejing 的回复:srcblend=srcalpha dstblend=1-srcalpha 支持楼上的。你的那个是加亮的颜色混合效果,在Photoshop和GIMP里面都有选择。 你可以使用ColorKey去掉黑色,然后使用Alpha混合技术实现。记住,图片一定要有Alpha通道。16位的图片Alpha通道只有1……
srcblend=srcalpha dstblend=1-srcalpha
很多参数选择的。
楼主不要想当然了,要正确显示这些图片本身就需要使用alpha通道,图片加个alpha通道很麻烦吗?在ddraw下你还可以有colorkey可用,d3d下如果不使用alpha通道你大概只有去写ps了,把黑色的像素discard掉
图片需要添加alpha通道,存成RGBA格式,黑的地方alpha设置为0,其他地方设置为1,在渲染时打开AlphaBlending,设置blend模式为SrcAlpha, InvSrcAlpha就可以了,也可以使用AlphaTest抠去Alpha为0的部分
8,305
社区成员
23,682
社区内容
加载中
试试用AI创作助手写篇文章吧