核心shader实现

         const char* vs ={"attribute vec3 inVertex;""attribute vec3 inNormal;"//法线"uniform mat4 MVPMatrix;""uniform vec3 LightDirection;"//光的方向"uniform vec3 EyePosition;""varying vec2 TexCoord;""void main()""{""gl_Position=MVPMatrix*vec4(inVertex,1.0);""vec3 eyeDirection=normalize(EyePosition-inVertex);""TexCoord.x=dot(LightDirection,inNormal);"//dot(x, y): 点积,各分量分别相乘 后 相加"TexCoord.y=dot(eyeDirection,inNormal);""}"};const char* ps ={"precision lowp float;""uniform sampler2D sTexture;""varying vec2 TexCoord;""const vec3 cBaseColor=vec3(1,1,1);""void main()""{""gl_FragColor=vec4(cBaseColor*texture2D(sTexture, TexCoord).rgb,1.0);""}"};

渲染函数

        virtual void    onRender(Program_CELL& shader,CELL3RDCamera& camera){static float angle = 0;matrix4 matRot(1);matRot.rotateY(angle);matrix4 matTrans;matTrans.translate(0,5,0);matrix4 matScale(1);matScale.scale(0.3f,0.3f,0.3f);//总的模型变换矩阵matrix4 matModel = matTrans*matRot*matScale;angle += 1.0f;//观察点坐标  也就是眼睛的位置float4 vMsEyePos = float4(0, 0, 125, 1)*matModel;_device.setUniform3fv(shader.EyePosition,1,&vMsEyePos.x);//从世界空间转换方向光到模型空间float4 vMsLightDir = float4(1, 2, 1, 0)*matModel;//光的入射方向//归一化float3 vMsLightDirS = normalize(float3(vMsLightDir.x,vMsLightDir.y,vMsLightDir.z));_device.setUniform3fv(shader.LightDirection,1,&vMsLightDirS.x);//光源位置float4 vMsLightPos = float4(50,20,40,1);vMsLightPos = vMsLightPos*matModel;matrix4 MVP = camera._matProj*camera._matView*matModel;_device.setUniformMatrix4fv(shader.MVPMatrix,1,false,MVP.data());VertexBumpMap* vert = &_arVertexs.front();_device.attributePointer(shader.inVertex,3,GL_FLOAT,GL_FALSE,sizeof(VertexBumpMap),vert);_device.attributePointer(shader.inNormal, 3, GL_FLOAT, GL_FALSE, sizeof(VertexBumpMap), &vert[0]._normal);_device.drawElements(GL_TRIANGLES,_arFaces.size()*3,GL_UNSIGNED_SHORT,&_arFaces.front());}

opengles实现卡通效果相关推荐

  1. PS卡通效果插件Photobacks Cartoon Mac汉化破解教程(含注册码)

    Photobacks Cartoon for Mac是一款适用于Mac操作系统的PS卡通漫画效果插件,可以帮您轻松创建想要的漫画效果.使用Photobacks Cartoon插件您可以轻松地折叠和打开 ...

  2. 如何使用 OpenCV 为照片添加卡通效果!

    OpenCV 是一个用于实时计算机视觉应用的 Python 库.OpenCV 是开源的,在图像处理.机器学习和深度学习方面有着巨大的应用.OpenCV 可用于对象检测.分类.笔迹分析等. OpenCV ...

  3. css月亮和星星卡通效果

    下载地址 css月亮和星星卡通效果 dd:

  4. DrawIO怎么画出卡通效果的图?

    什么是DrawIO? 众所周知,draw.io 是流行的画图工具,其拥有丰富的图库和强大的功能. 就在今天,我无意间发现了一位博主的文章,他文章中的图有卡通的效果,看着让人很是愉悦,所以我专门请教了他 ...

  5. DrawIO怎么画出卡通效果的?

    DrawIO 众所周知,draw.io 是流行的画图工具,其拥有丰富的图库和强大的功能. 就在今天,我无意间发现了一位博主的文章,他文章中的图有卡通的效果,看着让人很是愉悦,所以我专门请教了他,今天特 ...

  6. 把MM照片变手绘卡通效果

    原图 最终效果 1.打开原图,按Ctrl + J复制一层对人物简单磨皮. 2.新建一个图层,前景颜色设置为黄白色,然后用压力为45%左右的画笔涂抹人物皮肤. 3.用套索工具分别把人物的嘴巴及眼睛部分扣 ...

  7. 制作卡通(动漫风)效果

    本文制作卡通效果(动漫风)的主要思路: 分成线稿和色彩两部分来处理.通过海报边缘滤镜.阈值命令.油画滤镜等提取并勾勒出图像的线稿: 通过表面模糊滤镜.油画滤镜.木刻滤镜等色块化图像. 步骤及说明: 1 ...

  8. 米哈游贺甲:如何实现次世代卡通渲染效果?

    在5月12日Unite2017开发者大会上,米哈游技术总监兼美术指导贺甲进行了主题为次世代卡通渲染的演讲.一下为详细分享内容: 大家好,首先自我介绍一下,我叫贺甲,在米哈游担任技术总监和美术指导工作, ...

  9. TA进阶实例37(Unreal卡通风格化渲染效果)

    汉语"漫画"一词源自日本,最初由江户时代一个叫做葛饰北斋(1760-1849)的浮世绘画家所创立,他于1814年创作的<北斋漫画>绘谱可谓是远东地区漫画的元祖.之后到了 ...

最新文章

  1. javascript js异步加载
  2. dice系数 交叉熵_语义分割中的损失函数
  3. python和java哪个-Python和Java两门编程语言,学习哪个更好?
  4. android 后台Activity移到前台
  5. Java IO Serialization
  6. JS中的加号+运算符详解
  7. ADF_Tutorials系列17_ADF Faces_使用布局组件
  8. Pytorch 自定义激活函数前向与反向传播 sigmoid
  9. weblogic修改banner_WeblogicScanV1.3
  10. 跳槽了,但是面试官问的总答不到点上……
  11. 传统机器学习流程总结
  12. OpenCV_(Fit Line with points)用直线拟合一组点
  13. 13、TWS API和IB中的历史数据
  14. java生日祝福程序代码_生日快乐代码
  15. vs2019,C#,MySQL创建图书管理系统3(管理员相关页面的布局和设计实现,图书显示,图书添加)
  16. 让你了解CEO、COO、CFO、CTO是什么意思
  17. 应用测试一(烤地瓜)——> 隐藏数据
  18. 关于物联网模组fota远程升级的说明
  19. 应用调试(三)oops
  20. 计算机学院开学标语,大学开学迎新标语

热门文章

  1. Pock 让macOS 的App 图示显示在Touch Bar 上,让你快速一指切换
  2. Linux域名解析(DNS)
  3. 用Python写一段生成饼形图代码
  4. fatal: The current branch dev_zgd has no upstream branch.
  5. linux怎么给磁盘重新分区,如何给Linux磁盘分区
  6. mysql连接语句_mysql 连接语句
  7. Bert增量训练——run_mlm.py脚本训练参数中文总结概括
  8. 详解经典旋转目标检测算法RoI Transformer
  9. 基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)
  10. Linux系统中的权限管理