这种操作方法你必须事先先知道是干嘛用的 我也不会给太多的提示 如果你是程序员的话 剩下的部分自己搞定啦 哈哈!
功能有: 墙体透视 白色墙壁渲染 高亮 去除闪光和烟雾 游戏准心
第一种:大众作弊(wallhack(墙体透视作弊))
钩子钩到GLBegin,检查模式:
(GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN 或者 GL_QUADS)
如果不是,你首先要知道的是这个当前墙壁模型是什么颜色就要用到:
(glGetFloatv(GL_CURRENT_COLOR, &curcol))
OK了 我们现在的单精度相当于32位或4个字节值。记住了 我们继续操作吧:
curcolor[0] = red portion
curcolor[1] = green portion
curcolor[2] = blue portion
其次,我们要将它们融合在一起测试一下,所以你一定要把所有事情做完 接下来:
glDisable(GL_DEPTH_TEST)
glEnable(GL_BLEND)
然后,我们要选择我们要的通道模式:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
我喜欢用我现在这个方法,因为这个方法应该是最好的吧 国外也有人和我做法一样 比如CF的sean(D3D的作者)
GL_ZERO
GL_ONE
GL_SRC_COLOR
GL_ONE_MINUS_SRC_COLOR
GL_SRC_ALPHA
GL_ONE_MINUS_SRC_ALPHA
GL_DST_ALPHA
GL_ONE_MINUS_DST_ALPHA
GL_DST_COLOR
GL_ONE_MINUS_DST_COLOR
GL_SRC_ALPHA_SATURATE
最后,我们可以自己选择墙体透视的透明度(也就是ALPHA值),我用的ALPHA值是0.6,因为我不想弄的太2.. 好了,继续下面:
glColor4f(curcol[0], curcol[1], curcol[2], 0.6f)
基本上,现在的墙体透明就完成了,但是,并不怎么好,因为只要我们不清除每帧后的颜色缓冲区和深度缓冲区,那么就会流入帧相互混合,把透视弄的乱七八糟,有几种方法可以搞定这一点,但是我只知道有一种方法可以不破坏游戏的截图和录像功能
第一章节完毕..... 有提问可以留言 谢谢合作
版权所有 翻版die户口本 ----------By w21k3r
w21k3r's blog
www.w21k3r.com ←谁去谁和翻版一个代价.!