![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
3D引擎
文章平均质量分 55
各种3D引擎的学习笔记
程老师2088
毕业于中山大学,曾任网易游戏资深BI研究员、高级软件工程师,多年开发和软件项目管理经验。技艺较杂,愿与大家分享和共同进步
展开
-
[Cesium] 使用primitive绘制多段线
cesium里面绘制点线面可以通过entity或者primitive。今天先记录下使用primitive绘制线的代码。原创 2022-08-26 18:28:38 · 2667 阅读 · 0 评论 -
【C#】【Unity】一文教你实现简易的Socket客户端
在实现socket服务端记得基础上,一文教你实现简易的Socket客户端原创 2022-03-01 23:21:23 · 5726 阅读 · 1 评论 -
[Cesium]cesium里面的坐标系、相互转换关系以及平移问题
网上帖子很多,这里解释一些重要问题。GIS里面的坐标系系统1、地理坐标系、大地坐标系、经纬度坐标系都是一个意思,都是用经纬度来表示。WGS84就是地理坐标系。2、空间坐标是笛卡尔坐标系。可以参照一些帖子,讲得比较详细地理坐标系和投影坐标系之间的关系_lyf's blog-CSDN博客Cesium里面的关键名词Cartesian:笛卡尔。这个是以地心为坐标原点的。所以高度是个很大的值Cartographic:以弧度为单位的经纬度坐标系。没有以角度为单位的对象,需要自己转原创 2021-09-12 16:32:20 · 3801 阅读 · 2 评论 -
【3D引擎】Unity3D中修改纹理颜色
//设置像素 for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { texture.SetPixel(i, j, new UnityEngine.Color(1, 0, 0)); } } ...原创 2021-05-30 17:54:04 · 993 阅读 · 2 评论 -
【3D引擎】Unity下截取虚拟相机的画面
如何在Unity3D中截取当前场景原创 2021-05-30 17:03:01 · 474 阅读 · 0 评论 -
【UE4】Ubuntu20.04下运行UE4记录
在Linux(Ubuntu 20.0)运行和打包UE4工程全纪录原创 2021-05-19 16:25:06 · 2687 阅读 · 2 评论 -
【OpenGL】C#搭建OpenGL开发环境
本文将在在C#环境下搭建OpenGL的开发环境,降低OpenGL的开发门槛,同时能够很好地将桌面开发跟三维开发结合起来。原创 2021-04-18 22:11:57 · 3103 阅读 · 1 评论 -
【BimServer】bimsurfer获取model报WebSocket closed错误,code:1009
在使用bimsurfer展示一个bim模型的时候,较小模型不会出问题,换了一个大一点的模型,出现报错,具体出错信息为:解码的文本消息对于输出缓冲区太大,终结点不支持部分消息。code:1009刚开始不知道是客户端的问题还是服务端的问题,经查询谷歌和百度,是服务端的问题。应当修改tomcat配置(bimserver这里的web容器是tomcat)修改方法:在web.xml中加上配置<context-param> <param-name>org.apac原创 2021-04-13 15:57:16 · 2889 阅读 · 0 评论 -
【Cesium】智慧城市建筑白模泛光特效
智慧城市系统中,常常会用到建筑群泛光效果。今天我们通过cesium来制作这种泛光效果。原创 2020-12-13 22:41:50 · 6154 阅读 · 7 评论 -
【Cesium】添加广告牌实体实现地点标记效果
地点标记通常可以用广告牌实体的方式来实现,如下图效果直接上代码: // 添加广告牌实体 var enetity = viewer.entities.add({ name: '标点', position: Cesium.Cartesian3.fromDegrees(113.122717,23.028762,10), billboard:{ image: '/images/normal_point_128.png原创 2020-12-11 16:44:15 · 3045 阅读 · 0 评论 -
【Cesium】嵌入视频之视频墙
嵌入视频有2种方式,最常用就是把它给竖起来。这种方式就是画一面墙,然后把视频标签当做纹理的来源,贴到上面去。废话不多说,直接上代码html部分<video id="myVideo" muted="" autoplay="" loop="loop" crossorigin="*" controls=""> <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4"> <原创 2020-12-11 16:22:51 · 2244 阅读 · 7 评论 -
【CesiumJS】嵌入视频之视频投影
嵌入视频有2种方式,先说第一种,叫做视频投影,这种方式是在地面平铺个实体对象,比如四边形,然后把视频标签当做纹理的来源,贴到上面去。废话不多说,直接上代码(1)html部分<video id="myVideo" muted="" autoplay="" loop="loop" crossorigin="*" controls=""> <source src="http://vjs.zencdn.net/v/oceans.mp4" type="video/mp4"&g原创 2020-12-11 15:12:10 · 2084 阅读 · 0 评论 -
【CesiumJS】条件样式
对tileset进行条件样式的渲染:tileset.style = new Cesium.Cesium3DTileStyle({ color : { conditions : [ ['${Height} >= 100', 'color("purple", 0.5)'], ['${Height} >= 50', 'color("red")'], ['true', 'color("blue")']原创 2020-12-04 23:52:58 · 223 阅读 · 0 评论 -
【CesiumJS】使用Entity绘制图形和修改材质
以下面的代码为例,可以绘制一个带孔的多边形// 创建一个有洞的多边形,并填充蓝色材质 let width = 0.3; var polygonEntity = this.viewer.entities.add({ name: "Blue polygon with holes", polygon: { hierarchy: { positions: Cesium原创 2020-12-04 13:04:33 · 2031 阅读 · 0 评论 -
【CesiumJS】鼠标事件
Cesium的鼠标事件记录如下:第一步:初始化监听器//初始化监听器this.handler=newCesium.ScreenSpaceEventHandler(this.viewer.canvas);第二步:注册事件,在具体事件里面写逻辑代码: //鼠标左键handler.setInputAction(function(event){ //逻辑代码},Cesium.ScreenSpaceEventType...原创 2020-12-03 11:06:19 · 298 阅读 · 0 评论 -
【Three.js】搭建Three.js开发环境
Three.js是一个比较著名的3d引擎了,今天搭建了下它的开发环境。一 官网官网地址如下:https://threejs.org/二 下载源码包在官网左侧直接点击download,就会把所有的源码下载下来。为方便使用,直接解压,放到web工程的某个地方即可。三 引入库文件可以直接引用build下面的库文件。示例代码如下,注意改成你的实际位置<script src="/static/threejs/build/three.js"></script>.原创 2020-10-06 22:17:49 · 6408 阅读 · 5 评论 -
【CesiumJS】Cesium初始化Viewer,去掉多余无用的按钮和组件
Cesium是一个非常优秀的Web GIS组件,上手也不是很麻烦。其核心组件View就是一个地图的视窗。默认的的View视窗提供了很丰富的组件和功能,但抱歉的是看起来有点乱且不好看。通常来说,项目还是希望用自己的UI组件比较好。因此初始化viewer之后,第一步我们要去掉冗余的内容。Viewer的参数提供了一个option参数,在这里面可以设置各个widget的开关。具体api位置:https://cesium.com/docs/cesiumjs-ref-doc/Viewer.html#.Const原创 2020-09-09 15:25:39 · 2301 阅读 · 0 评论 -
【BabylonJS】异步有坑?异步有坑!记一次报错的发现过程。
先来看下报错的具体内容:Unable to load assets from /static/model/xx/xx.glb: Scene has been disposed从字面意义上来看,是场景Scene被释放了,加载资源失败。为什么会出现这种情况呢?我们先来看下整个的业务流程:1、进入页面,创建场景1;2、在页面进行了某些操作,销毁场景1,使用的是scene.dispose3、执行完dispose之后,然后加载场景2,即重新new一个scene,并加载资源。报错出现的操作手原创 2020-08-22 00:29:17 · 1121 阅读 · 0 评论 -
【BabylonJS】天空盒
增加一个天空盒的代码如下var skybox = BABYLON.MeshBuilder.CreateBox("skyBox", { size: 2000.0 }, scene); var skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene); skyboxMaterial.backFaceCulling = false; skyboxMat.原创 2020-08-18 15:32:32 · 895 阅读 · 0 评论 -
【BabylonJS】光照效果
平行光var light = new BABYLON.DirectionalLight("DirectionalLight", new BABYLON.Vector3(0, -1, 0), scene); light.intensity = 2.5; //调整平行光的强度 console.log('light intensity:' + light.intensity);【先记录下,后面继续补】...原创 2020-08-18 15:30:53 · 1041 阅读 · 0 评论 -
【BabylonJS】画线及其自动延长的动画
有这么个需求,需要动态画一根线,并以动画的方式延长。我们先来拆解下技术要点:1、首先,我们得把一根线给画出来;2、然后,得让这根线动态地延长。先来解决第一个问题,画线。Babylon提供了画线的方法BABYLON.MeshBuilder.CreateLines。该方法接受3个参数,具体可以参照api文档:https://doc.babylonjs.com/api/classes/babylon.meshbuilder#createlines这里直接举个例子可以看得明白:var m.原创 2020-08-15 15:31:08 · 1151 阅读 · 0 评论 -
【BABYLON】通过AssetContainer实现预加载模型
一、前言任何的引擎,都离不开场景和资源的概念。实际上,所有的引擎都遵循这么个基本准则:在场景中加载资源,通过交互和逻辑操作资源,完成功能。因此,要制作游戏或者三维业务系统,首要的工作是要想办法把资源加载到场景中。加载场景这事,说简单很简单,说复杂也复杂。为什么这么说呢?因为基本上很多引擎都提供了加载的功能,加载、显示,一句话搞定,是不是比较简单?但遇到一些业务场景,最典型的就是在web上的资源动态加载和变化,如果我希望这个加载过程是越少时间越好,该怎么办?这个就不得不提到预加载这个操作。什么原创 2020-08-14 12:09:43 · 1494 阅读 · 0 评论