three.js 着色器材质内置变量】的更多相关文章

这篇郭先生说一下three.js着色器的内置变量,分别是 gl_PointSize:在点渲染模式中,控制方形点区域渲染像素大小(注意这里是像素大小,而不是three.js单位,因此在移动相机是,所看到该点在屏幕中的大小不变) gl_Position:控制顶点选完的位置 gl_FragColor:片元的RGB颜色值 gl_FragCoord:片元的坐标,同样是以像素为单位 gl_PointCoord:在点渲染模式中,对应方形像素坐标 他们或者单个出现在着色器中,或者组团出现在着色器中,是着色器的灵…
上一篇郭先生在例子中用到了着色器变量中的uniform和varying.这篇继续结合例子将一下attribute变量,在使用过程中也发现由于three.js的版本迭代,之前的一些属性和参数已经发生了改变,ShaderMaterial也不需要传递attributes属性值,查看源码我们可以看到如果传递了attributes参数,会给出下面这样的错误. attributes should now be defined in THREE.BufferGeometry instead. 因为我们现在想传…
说起three.js,着色器材质总是绕不过的话题,今天郭先生就说一说什么是着色器材质.着色器材质是很需要灵感和数学知识的,可以用简短的代码和绘制出十分丰富的图像,可以说着色器材质是脱离three.js的另一块知识,因此它十分难讲,我们只能在一个一个案例中逐渐掌握着色器语言的使用技巧. 1. 什么是着色器材质 着色器材质(ShaderMaterial)是一个用GLSL编写的小程序 ,在GPU上运行.它能够提供 materials 之外的效果,也可以将许多对象组合成单个Geometry或Buffer…
今天郭先生说一说如何在three.js着色器中添加纹理,先看看今天要完成的效果,在线案例请点击博客原文. 这里我们分别引入三个纹理,分别是地球的表面纹理,对应的海拔灰度图,和云朵的纹理.使用表面纹理还是地球的外貌,海拔灰度图给地球添加凹凸效果,云朵纹理给地球添加云朵效果.下面我们说一说代码. 1. 绘制几何体,加载贴图 我们只需要在一个球体中进行操作,所以新建一个球体.然后分别加载三张纹理. var sphere = new THREE.SphereBufferGeometry(10, 128,…
上一篇说顶点着色器和片元着色器的皮毛,这篇郭先生说一说着色器变量,通过变量可以设置材质.先看看今天要做的如下图.在线案例请点击博客原文. 在这个案例之前,我们先复习一下着色器变量 Uniforms是所有顶点都具有相同的值的变量. 比如灯光,雾,和阴影贴图就是被储存在uniforms中的数据. uniforms可以通过顶点着色器和片元着色器来访问. Varyings 是从顶点着色器传递到片元着色器的变量.因此需要在两个着色器中同时定义,对于每一个片元,每一个varying的值将是相邻顶点值的平滑插…
这篇郭先生在练习一下着色器变量,在度娘上面或者官网上经常看到类似水波一样的效果,这篇就试着做一个这样的效果,顺便巩固一下顶点着色器和片元着色器,毕竟多多练习才能更好地掌握.效果如下图,在线案例请点击博客原文. 这里用到了用到了顶点着色器和片元着色器. 1. 设置几何体 设置一个几何体,对于波浪效果,我们制作一个球几何体(当然也可以设置其他的,可能有意想不到的效果哦!). var sphere = new THREE.SphereBufferGeometry(10, 120, 80); 2. 设置…
最近分配到一个看起来非常简单的优化需求.通过地图上设置工具来改变地图上显示的点的大小和透明度.无非过程就是从控件面板获取到用户设置的值保存到数据库中.然后地图上画点的时候取出设置的值渲染出点即可.前端绘制图形无非canvas.这个方面我之前也是不怎么涉及的部分.所以趁这次分配的任务比较轻时间相对宽裕的情况下.可谓是好好学了一把WebGL的内容.通过一个星期的查找学习.总算有了比较清晰的理解.足以好好理解代码了. 俗话说.工欲善其事必先利其器.我这次可是深刻体会了一把.一开始觉得好像蛮容易的.后来…
1. 顶点着色器中的内置变量 输出变量 gl_Position(vec4):顶点数据位置gl_PointSize(float):计算一个点的大小 2.片元着色器中的内置变量 输入变量gl_FragCoord(vec4类型)含有当前片元相对于窗口位置的坐标值x.y.z与1/w 应用:仅绘制窗口中指定的区域. gl_FrontFacing(布尔型)判断正在处理片元是否输入光栅化阶段生成此片元的对应图元的正面 输出变量gl_FragColor(vec4类型)内建变量用来由片元着色器写入计算完成的片元颜…
Nginx的配置文件是一个纯文本文件,它一般位于Nginx安装目录的conf目录下,整个配置文件是以block的形式组织的.每个block一般以一个大括号“{”来表示.block 可以分为几个层次,整个配置文件中Main命令位于最高层,在Main层下面可以有Events. HTTP等层级,而在HTTP层中又包含Server层,即server block, serverblock中又可分为location层,并且一个server block中可以包含多个location block. nginx配…
用JS中的日期内置函数实现在页面显示:“今天是:2013年9月26日14:32:45”. var date=new Date(Date.parse('9/26/2013 14:32:45'));   写出JS中声明对象的三种方法. Var obj={ name:名字, Say:function(){ Alert(‘sssss’); } }     Var obj=new Object();     Var obj={} Obj.name=’名字’; Obj.say=function(){ Ale…