threejs 反锯齿,raser,特效发光
反锯齿
反锯齿本来是在threejs中比较容易的,加上{ antialias: true,alpha :true} 以后确实效果好很多,但是问题是很多都是要用后期处理来做这个场景,而懂得opengl的人知道后期处理使用离屏表面来做的,和实时渲染的参数不一致,这样可能就使用FXAAShaderPass 等去做,最好是用glsl语言去做了。
raser如何计算
在鼠标的点击事件中,计算二维或者三维变量vector: mouse
mouse.x = (e.clientX / window.innerWidth) * 2 - 1;
mouse.y = -(e.clientY / window.innerHeight) * 2 + 1;
如何计算的,以下是其推导过程:
假定鼠标点击的点为 (x,y), 则 (x,y) = (e.clintX, e.clientY)
设该点在opengl坐标中的坐标值为 (x’,y’);那么怎么计算该值呢?
在浏览器中点的坐标值原点以屏幕左上角为(0,0)点,要推导以屏幕中心为原点的鼠标点击值的计算公式为:
x = x1 - innerWidth/2
y = innerHeight/2 - y1
x1,y1 为当时鼠标点下去的点。
一般来说opengl世界坐标的范围是[-1,1],当然,学过opengl基础的人知道,其实这个值只是归一化,并不一定是这样子,归一化有很多好处,这里不一一说明,把计算所得的x,y归一化,我们将得到
x’ = (x1 -innerWidth/2)/(innerwidth/2) = (x1/innerWidth)*2-1
*y’ = -(y1/innerHeight)2 +1
发光
点击某个物体发光,如何做?
function outlineObj() {var width = window.innerWidth; //全屏状态对应窗口宽度var height = window.innerHeight; //全屏状态对应窗口高度composer = new THREE.EffectComposer(renderer); // 特效组件var renderPass = new THREE.RenderPass(scene, camera);composer.addPass(renderPass); // 特效渲染outlinePass = new THREE.OutlinePass(new THREE.Vector2(window.innerWidth, window.innerHeight), scene, camera);composer.addPass(outlinePass); // 加入高光特效outlinePass.pulsePeriod = 2; //数值越大,律动越慢outlinePass.visibleEdgeColor.set(0xff0000); // 高光颜色outlinePass.hiddenEdgeColor.set(0x000000);// 阴影颜色outlinePass.usePatternTexture = false; // 使用纹理覆盖?outlinePass.edgeStrength = 5; // 高光边缘强度outlinePass.edgeGlow = 1; // 边缘微光强度outlinePass.edgeThickness = 1; // 高光厚度outlinePass.selectedObjects = selectedObjects; // 需要高光的obj}
鼠标点击事件:
document.onmousedown = function (event) {// make sure we don't access anything elseevent.preventDefault();// get the mouse positionsvar mouse_x = (event.clientX / window.innerWidth) * 2 - 1;var mouse_y = -(event.clientY / window.innerHeight) * 2 + 1;// get the 3D position and create a raycastervar vector = new THREE.Vector3(mouse_x, mouse_y, 0.5);vector.unproject(camera);var raycaster = new THREE.Raycaster(camera.position,vector.sub(camera.position).normalize());var intersects = raycaster.intersectObjects(scene.children);//outlineObj(intersects[0].object);if(intersects){console.log(intersects[0].object);selectedObjects.length =0;selectedObjects.push(intersects[0].object);//outlineObj(selectedObjects);}}
效果
效果就是点击哪个哪个发光,后面会使用glsl语言来做
threejs 反锯齿,raser,特效发光相关推荐
- (转)完美画质 3D游戏反锯齿技术浅析 .
完美的画面已经离我们不再遥远--反锯齿技术浅析 不管现今的游戏画面有多完美,人物和环境有多真实,但游戏画面的构成的主要方式仍然没有得到改善:一帧画面由成千上万像素构成.这意味着物体多边形的轮廓最终是锯 ...
- linux netbeans 中文乱码,浅谈Linux Netbeans字体反锯齿处理
用的Linux发行版是Ubuntu8.04,如果使用源里面的JDK一切都很简单(现在源里的版本是1.6u6),JDK6开始支持反锯齿.装完Netbeans你就会惊喜的发现,仿原生GUI的界面(GTK+ ...
- Ubuntu 8.04下Netbeans的字体反锯齿解决(转)
原帖地址:http://www.oklinux.cn/html/Basic/jyjq/20081011/62034.html 测试可用,网上搜的其他方法如复制字体文件等都不成功. 首先说明,我是被锯齿 ...
- html5 canvas消除锯齿,HTML5 Canvas 如何取消反锯齿绘图
一.问题的提出 我们都知道反锯齿(anti-aliasing)绘图给我们带来更好的视觉体验,有了这个技术,绘制的图形的边缘再不是以前毛毛躁躁的样子了.这就是采用反锯齿算法的功劳.其实质就是把要绘制的颜 ...
- html5 canvas消除锯齿,HTML5 Canvas 如何取消反锯齿绘图
原文出自:http://blog.csdn.net/cheungmine/article/details/7053455 一.问题的提出 我们都知道反锯齿(anti-aliasing)绘图给我们带来更 ...
- 3DMark将加入DLSS 测试人工智能强化反锯齿效果
2019独角兽企业重金招聘Python工程师标准>>> 3DMark是由UL公司推出的显示效能测试软件,其中的Port Royal项目在先前已加入光线追踪测试功能,如今又新增支持DL ...
- 关于 AlphaBlend 和 32bpp 的反锯齿图标
原文地址::http://www.haogongju.net/art/840107 相关网帖 1.DirectDraw版的AlphaBlend----http://www.haogongju.net/ ...
- canvas像素操作 取色器 写入像素数据 缩放和反锯齿 保存图片
博客简介 HTML5中的canvas允许我们直接对像素进行操作,我们可以通过ImageData对象操纵像素数据,读取或将数据数组写入该对象中.这里还会介绍如何控制图像使其平滑(反锯齿)以及如何从Can ...
- Qt:Qt实现具有反锯齿的圆角窗口:不规则窗口
@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHi ...
最新文章
- 线下活动【深圳】用Leangoo做Scrum敏捷开发实战课(免费)
- 安装php出现 “make: *** [ext/gd/libgd/gd_jpeg.lo] Error ”
- 关于OpenGL环境配置问题(2015)
- nsq源码阅读笔记之nsqd(一)——nsqd的配置解析和初始化
- 初级教程之---delphi调试
- (进阶篇)Redis6.2.0 集群 主从复制_故障解决_03
- 介词at_介词逻辑| 离散数学
- java中的getnumber怎么用_java安全编码指南之:Number操作详解
- freetype 2.11.0必须使用VS2012编译
- fish-ui 一套基于vue2的ui组件库
- pythonsocket中tcp通信接收不到数据_简单说说Python Socket编程步骤?
- STM8S系列学习第一周目:1.用STVD组建第一个项目创建工程
- 广告行业中那些趣事系列36:腾讯2021广告大赛多模态视频广告标签baseline介绍和优化思路...
- Python爬虫:新浪新闻详情页的数据抓取(函数版)
- 开发者硬核:Web3 DApp 最佳编程实践指南
- 实验三-RIPv2基本配置实验
- 【Tidy2】Notepad++的html格式化插件
- 客户成功团队的 OKR 案例
- 《国度》之大学者联盟全解
- Android 输入法表情上传服务器
热门文章
- 控制文件夹递归深度_TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)...
- 小米Civi 1S获美女产品经理确认:依旧是最美小米机型
- 美的集团:收购KUKA总价款为15亿欧元
- 假如啤酒只有七天生命
- 12GB+512GB售价18999元起,华为发布Mate X2典藏版
- realme GT大师版核心参数曝光:同样一亿像素主摄
- iPhone 12s渲染图曝光,刘海变小了!
- 产业链人士:苹果明年将推出OLED屏iPad
- “你在哪里上班?”“呵呵呵!”
- 华为Mate 40 Pro维修价来了:这个部件最贵,够买一部顶级旗舰