码迷,mamicode.com
首页 >  
搜索关键字:surface shader    ( 1969个结果
基于Qt的OpenGL可编程管线学习(9)- X射线
X射线也就是轮廓线,效果如下图所示原理:物体表面的法线与人眼睛缩成的角度为90度时,刚好能看到物体的轮廓Fragmentshader代码如下:uniformsampler2DU_MainTexture; varyingvec2M_coord; varyingvec3M_normal; varyingvec3M_WordPos; voidmain(void) { vec3nLightDirection..
分类:其他好文   时间:2017-06-01 00:28:49    阅读次数:172
基于Qt的OpenGL可编程管线学习(4)- 使用Subroutine绘制不同光照的模型
使用Subroutine在shader中封装不同的函数,在CPU端选择调用那个函数效果如下图所示左侧:环境光中间:环境光+漫反射右侧:环境光+漫反射+高光1、Subroutine在shader中的内容subroutinevec4SurfaceColor(); subroutineuniformSurfaceColorU_SurfaceColor;定义SurfaceColor()函数..
分类:其他好文   时间:2017-06-01 00:28:35    阅读次数:239
基于Qt的OpenGL可编程管线学习(19)- 雾
雾的效果,这里只对牛头的模型进行了雾化,如下图所示距离模型越近,越清晰1、线性雾fragmentshader中实现效果,参数为眼睛到平面的距离,需要传入雾的起始位置和终止位置floatcalcFogLinear(floatdistance) { floatfogAlpha=(distance-M_FogStart)/(M_FogEnd-M_FogStart); fogA..
分类:其他好文   时间:2017-06-01 00:27:36    阅读次数:150
基于Qt的OpenGL可编程管线学习(17)- 差值、反差值、排除
1、差值shader//差值 uniformsampler2DU_MainTexture; uniformsampler2DU_SubTexture; varyingvec2M_coord; voidmain() { vec4blendColor=texture2D(U_SubTexture,M_coord); vec4baseColor=texture2D(U_MainTexture,M_coord); gl_FragColor=abs(vec4(blendColor.rgb-baseCol..
分类:其他好文   时间:2017-06-01 00:26:55    阅读次数:160
基于Qt的OpenGL可编程管线学习(8)- 探照灯
关于探照灯的效果如下图所示:探照灯需要传入光源的位置,光源的方向以及夹角的大小(夹角为光源覆盖的夹角的一半)计算思路:用光源到点的距离与光源的方向的单位向量做点乘,得到夹角的cos,用计算的夹角cos与传入的角度的cos做比较,确定光线照射的范围。边缘不部分计算的cos..
分类:其他好文   时间:2017-06-01 00:26:40    阅读次数:185
基于Qt的OpenGL可编程管线学习(16)- 柔光、强光、叠加
1、柔光shader//柔光 uniformsampler2DU_MainTexture; uniformsampler2DU_SubTexture; varyingvec2M_coord; voidmain() { vec4blendColor=texture2D(U_SubTexture,M_coord); vec4baseColor=texture2D(U_MainTexture,M_coord); gl_FragColor=2.0*blendColor*baseColor+baseCol..
分类:其他好文   时间:2017-06-01 00:26:33    阅读次数:310
基于Qt的OpenGL可编程管线学习(11)- 高斯模糊
下图是使用高斯模糊和未使用高斯模糊的效果图对比正常图片高斯模糊后1、标准高斯模糊原理:每个像素周围对应的像素乘以对应的算子,然后除以算子的综合算子为121242121fragmentshadervaryingvec2M_coord; varyingvec3M_normal; varyingvec3M_WordPos; uniformsampler2DU_MainT..
分类:其他好文   时间:2017-06-01 00:22:38    阅读次数:288
基于Qt的OpenGL可编程管线学习(18)- 平滑、锐化、边缘检测
1、平滑shader//平滑 uniformsampler2DU_MainTexture; uniformsampler2DU_SubTexture; varyingvec2M_coord; voidmain() { vec4color=vec4(0.0); intcoreSize=3; floattexelOffset=1/300.0; floatkernel[9]; kernel[6]=1;kernel[7]=1;kernel[8]=1; kernel[3]=1;kernel[4]=1;k..
分类:其他好文   时间:2017-06-01 00:21:52    阅读次数:283
基于Qt的OpenGL可编程管线学习(14)- 正片叠底、逆正片叠底
1、正片叠底shader//正片叠底 uniformsampler2DU_MainTexture; uniformsampler2DU_SubTexture; varyingvec2M_coord; voidmain() { vec4blendColor=texture2D(U_SubTexture,M_coord); vec4baseColor=texture2D(U_MainTexture,M_coord); gl_FragColor=blendColor*baseColor; }..
分类:其他好文   时间:2017-06-01 00:21:38    阅读次数:148
基于Qt的OpenGL可编程管线学习(5)- FBO的使用
FBO:FrameBufferObject,默认绘制在1号FBO中,自定义的FBO是可以做读写操作的。绘制到自定义的FBO,然后显示出来,如下图所示:Qt中有关于FBO的类,QOpenGLFrameBufferObjectFBO的创建m_FrameBufferObj=newQOpenGLFramebufferObject(w,h,QOpenGLFramebufferObject::Depth);FBO的..
分类:其他好文   时间:2017-06-01 00:20:31    阅读次数:226
1969条   上一页 1 ... 69 70 71 72 73 ... 197 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!