ThreeJs-14HTML混合3D渲染
一.css渲染器基本使用
使用场景:经常在一些3D物体左右还会跟随一些文字等,实际都是标签,应用场景非常广泛

先完成基本的3D,月球围绕地球转,这里就是给月球加了sin函数


然后现在就先创建一个标签体出来

2D渲染器出了暴露出来一个渲染器还有一个对象器


但是到这里并不会显示出来,还要创建2D渲染器跟渲染器差不多

这样就是出来两个一样大小的元素,但是需要重叠一下

设置固定定位,并且跟随render一起渲染


如果发现此时由于2D渲染器在上面,导致3D的缩放旋转等不生效


二.添加多个元素标签跟随物体移动
首先添加月球div

给月球添加上后会自动跟着球体走

再在地球上标注中国
这里需要注意一下,如果想字跟着转动走,需要设置xyz轴,特别是z轴


三.使用射线碰撞来检测标签显示隐藏
在刚才的案例中有两个问题
一个是当我们调整浏览器视图尺寸,文字的定位就出现问题了

这个需要在不断运动中,重新计算2D渲染器尺寸就可以了

第二个是,当我们移动到美洲这边,中国都被挡住了,但是文字还在
这里的思路是这样的
从中国两个字和摄像机打一条射线过去,通过穿过的物体来判断,先判断有没有,如果没有就要显示,因为穿过去没有物体只有两种情况
一个是中国在最左边,一个是在最右边此时射线穿过去,是没有物体的,但是这个时候中国已经出来了所以要显示

然后是有的情况下,有的情况下,文字在前和在后,射线穿过去都会有,这个时候我们通过文字到摄像机的距离和物体到摄像机的距离判断,如果物体到摄像机的距离比文字还要小,说明文字在背后去了不显示,这里注意3D物体有个方法可以计算到某一个点的距离
实例化射线



ThreeJs-14HTML混合3D渲染的更多相关文章
- 初探Stage3D(一) 3D渲染基础原理
关于本文 本文主要想介绍一下3D渲染的基本流程,及怎样把一个三角形(0,1,0),(1,0,1),(0,0,1)最终渲染到屏幕上来.文章的目的是对3D渲染流程做一个简单的介绍,其中不涉及任何语言的AP ...
- Threejs 使用的3D格式
3D格式你可以通过任意软件导出(.3ds,dae等),但是threejs 无法使用, 1,http://www.blender.org/ 下载这款开源的3d软件 2,https://github.co ...
- threejs 组成的3d管道,寻最短路径问题
threejs 里面的3d管道的每个节点ID是唯一的,且对应x,y,z坐标.那么当需要从A点到B点的时候,可能出现有多条路径可走,此时便需要求出最短行走路径,因此用到一个寻路径算法.我们将问题简化如下 ...
- 基于 HTML5 Canvas 的 3D 渲染引擎构建生产管控系统
前言 大家好,老郑我又回来了.这一期为大家带来一个非常好玩的 demo,我们制作一套自己的 3D 管道控制系统,运用了( http://www.hightopo.com )HT 的 Graph3dVi ...
- 基于 HTML5 Canvas 的 3D 渲染引擎构建机架式服务器
前言 今天找到了 HT 的官网里的 Demo 网站( http://www.hightopo.com/demos/index.html ),看的我眼花缭乱,目不暇接. 而且 HT 的用户手册,将例子和 ...
- 3D渲染集群,你了解多少?
摘要:渲染是批处理运行模式,那能不能使用Docker容器技术,做大规模的渲染集群呢? 我们先说说3D渲染涉及哪些领域: 1.什么是3D渲染 简单粗暴的讲:就是将虚拟世界里的3D模型,变为(人眼看到)平 ...
- 【实时渲染】实时3D渲染如何加速汽车线上体验应用推广
在过去,一支优秀的广告片足以让消费者对一辆汽车产生兴趣.完美的底盘线条或引擎的轰鸣声便会让潜在买家跑到经销商那里试驾.现在,广告还是和往常一样,并没有失去其特性,但86%的买家在与销售交流之前会在网上 ...
- 3D渲染
3d渲染的本质是在三维坐标系中绘制很三角形,用三角形拼成物体,然后投影到二维图像上,所以做渲染就是画好这些三角形;3d渲染输入的是很多三角形的3个顶点和属性,输出的是一张2d图.画好三角形要研究给三角 ...
- 从《BLAME!》说开去——新一代生产级卡通真实感混合的渲染方案
<BLAME!>是Polygon Pictures Inc.(以下简称PPI)创业33周年以来制作的第一部CG剧场电影,故事来自于贰瓶勉的同名漫画作品(中文译名为<探索者>或者 ...
- Flash3D学习计划(一)——3D渲染的一般管线流程
一:什么是渲染管线 渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元.一个流水线是一序列可以并行和按照固定顺序进行的阶段.每个阶段都从它的前一阶段接收输入,然后把输出发给随后 ...
随机推荐
- re模块 函数模式详解
re模块 python爬虫过程中,实现页面元素解析的方法很多,正则解析只是其中之一,常见的还有BeautifulSoup和lxml,它们都支持网页HTML元素解析,re模块提供了强大的正则表达式功能 ...
- B+树原理详解
B树 与 B+树 我们今天要介绍的是工作开发中最常接触到的 InnoDB 存储引擎中的 B+ 树索引.要介绍 B+ 树索引,就不得不提二叉查找树,平衡二叉树和 B 树这三种数据结构.B+ 树就是从他们 ...
- Linux只gz文件格式压缩与解压缩
压缩成gz gzip * gzip file 具体参数可使用help查看 解压缩gz gunzip * gunzip file.gz 具体也是可以用help查看
- vue3-setup中使用响应式
基本类型的响应式数据 在 Vue 3 中,ref是一个函数,用于创建响应式的数据.它主要用于处理基本类型(如数字.字符串.布尔值等)的数据响应式 当我们调用 ref 函数时,会返回一个包含一个 .va ...
- Node.js Express 框架(2)
1.读取文件并返回给客户端 res.sendFile(path):读取文件并返回给客户端,适合静态页面 app.get("/",function(req,res){ res.sen ...
- 生产环境BigDecimal用错了,已哭晕在厕所。。。
大家好,我是苏三,又跟大家见面了. 前言 在日常开发中,很多小伙伴喜欢用 BigDecimal 来处理精确计算,比如钱.分数.比例啥的. 理论上,它比 double 或 float 更精确,但如果你用 ...
- ORCA避障源码笔记
参考资料 https://gamma.cs.unc.edu/ORCA/publications/ORCA.pdf https://gamma.cs.unc.edu/RVO2/ 数学知识 1.向量的点乘 ...
- NFS服务搭建过程
NFS服务 [1].nfs配置 作用: 解决数据一致性问题 NFS服务程序的配置文件为/etc/exports,需要严格按照共享目录的路径 允许访问的NFS客户端(共享权限参数)格式书写,定义要共享的 ...
- 第一个 milestone:内推 50 人拿到微软 offer!
就在昨天,我的一位候选人和我说,他已经通过面试,正在 offer 沟通阶段.由此,我达成第一个小里程碑:成功内推 50 人拿到了微软 offer! 内推了多少人? 从 2019 年年初开始内推,到现在 ...
- 【uni-app】【01】底部导航栏与页面切换
1.(配置文件在哪)uni-app 路由控制是在 pages.json文件中的. 2.(基本配置项有哪些)初学的时候主要有三个配置项,①pages ② globalStyle ③ tabbar [!T ...