- 博客(21)
- 收藏
- 关注
原创 通过Float32Array类型化数组读取二进制数据
Float32Array类型数组代表的是平台字节顺序为32位的浮点数型数组(对应于 C浮点数据类型) 。如果需要控制字节顺序,使用DataView替代。其内容初始化为0。一旦建立起来,你可以使用这个对象的方法对其元素进行操作,或者使用标准数组索引语法 (使用方括号)。语法如下:new Float32Array(length);new Float32Array(typedArray);new Float32Array(object);new Float32Array(buffer ...
2020-09-08 14:59:13
5212
原创 PCL点云拼接(通过Lidar外参拼接点云)
六个固态激光雷达扫出来的点云,需要拼接成360°的闭合点云,刚开始我单纯的觉得直接把所有pcd合成一个(就是把所有点累加起来)那么看看效果:我擦这是啥玩意,官网提供的拼接也是累加点呀,实际项目中没那么多理想情况,好吧,每个pcd出来的坐标信息都是基于当前雷达作为基点的,那么凭什么能完整合起来的呢?哈哈,固态激光雷达外参不就是完美的拼接点云的数据嘛。CMakeLists.txtcmake_minimum_required(VERSION 2.8 FATAL_ERROR)project(con
2020-06-08 11:50:47
5403
16
原创 js与shader通信
webgl开发中,很多功能效果呀还是必须得要shader才能实现,shader我这边用的glsl写的,webgl三维框架用的three,既然GPU编程肯定要与CPU通信,这边我自己研究出了比较好用的通讯方式1.一般类似传值 一.js传值: let tempIndex=1; const hzbb =shader.uniformLocati...
2019-08-19 11:34:06
632
原创 基于cesium实现小地图功能
看了几天的cesium感觉上手还是挺快的,这种基于状态而不是事件驱动的方式感觉就是真爱,决定写几个小功能练练手,我之前做webgl开发,在怎么封装底层还是webgl。言归正传,其实小地图就是你定义的小地图与主视图联动就可以了,相比于three,cesium还是相当的友好,封装了太多先进的技术,基本熟悉了api调用就是,不用过多借助于第三方库,我这里实现逻辑就是截图与回调结合起来的,文字变化比较...
2019-05-17 11:22:10
2145
1
原创 threejs+angular 实现面积测量
很多bim轻量化平台应该都有测量这个功能,什么距离啊,角度测量呀,里面比较复杂的还是面积测量这块,其他就比较简单了;首先面积测量你得考虑是否共面,还得兼容凹凸多边形先看看效果吧逻辑很简单:1.只有模型才可以点击,空白的地方不能测量的(其实就是碰撞检测)2.鼠标抬起是确定一个点,鼠标移动是你绘制线 3.三个点确定一个平面 4.把任意多变形拆分成三角形来计算面积实现逻辑都在这里,...
2019-05-15 09:10:03
2512
1
原创 Babylon天空盒
天空图像创建天空盒需要六个jpeg图像,所有这些图像应该是正方形且尺寸相同,最好是2的幂,例如1024px x 1024px。每个图像的名称应该有一个公共部分,后跟_px,_nx,_py,_ny,_pz或_nz给出的位置,对应于它是在正(p)还是负(n)x,y或z轴上。示例图片:请注意,图像在框的边缘无缝匹配:可以通过搜索天空盒图像在网络上找到Skybox图像。通常,这些是...
2019-03-06 14:58:24
2222
2
原创 Babylon多视图
Babylon.js本身是能够渲染同一场景的多个视图,实现多视图必须满足两点:1.有源相机 基本上,scene具有activeCamera定义视点的属性。但我们也可以使用以下代码定义真tm多的活动相机:scene.activeCameras.push(camera1);scene.activeCameras.push(camera2);scene.acti...
2019-03-05 15:57:47
1065
原创 Babylon自定义相机输入
如何自定义相机输入一旦您调用相机的attachControl功能,每个Babylon.js相机都会自动为你处理输入。您可以使用detachControl函数撤消控件。大多数Babylon.js开发者使用两步过程来激活和连接相机:1. scene.activeCamera = myCamera; 2. scene.activeCamera.attachControl(canvas, tr...
2019-03-05 14:46:45
936
1
原创 unity webgl自定义启动进度条动画
多多少少在unity官网webgl模板看到了Template自定义介绍,今天分享一个超级实用的添加自定义的模板有两种方式:1.在你-----unity安装位置\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\WebGLTemplates在这目录下创建自定义模板2.直接在unity的 Assets下创建WebGLTempla...
2018-08-03 16:39:48
8789
8
原创 unity模型剖切
最近有个需求就是实现模型剖切,模型是个整体具体显示隐藏感觉通过unityapi实现太难了,寻思许久还是觉得通过shader来实现,原理很简单就是模型的三角面剔除,能gpu干的活就不麻烦cpu了,性能方面亲测没啥大的开销。看效果:直接看shader吧,也很简单,最好有点OpenGL基础,要不看起来很难受----"surprise Mark Fuck图形学开发者"// Upgrade NOTE: re...
2018-06-23 16:03:53
9570
4
原创 unity webgl启动时间优化
接触过unity发布成webgl的都应该被其加载的启动时间恶心过吧,真的很慢,对用户体验很差我的解决办法是1.Resources文件夹里东西越多越慢,能弄成ab包就尽量弄成,图片资源预知体什么的最好别放这文件夹下2.建议使用brotli压缩方式3.那就是服务器做缓存机制,了解webgl文件包的应该度知道其文件格式,主要数据在build文件下我测试了很多次加载过程,发现大部分时间都是在下载和解压.u...
2018-06-19 18:57:18
16310
2
原创 unity在webgl端 输入框无法输入中文和中文显示问题的解决
unity在发布成webgl无法显示中文和inputField无法输入中文的问题应该都遇到了,博主蛋疼的查了好久才发现unity内置的inputfield类不支持IME,顺着这个路不小心找到了插件这个插件免费的,可以下来试试,但是这个插件里面的字体是真的坑,中文显示不全总会少字,那么这样就又开始蛋疼了,捣鼓了好久,决定换个中文ttf,一般电脑字体文件下有好多字体随便找个支持中文的后缀是tt
2017-12-22 15:18:00
17519
10
原创 unity 鼠标实时画箭头
c端的QQ与微信截图里都有个拖拽鼠标画箭头的功能以至于好做标注,其实unity也可以实现这个功能,亲测在webgl端与pc端可用,移动端由于感觉没意义没测试,我觉得应该没啥问题,主要思路就是:箭头由线段和图片组成,鼠标可以实时改变箭头长短和方向(箭头的方向我暂时只是在2维下画的,绕着z轴实时旋转就行,一点向量基础就行),鼠标按下出现一个三角箭头,鼠标滑动就绘制出线段,线段可跟着你的鼠标变长变短,变
2017-12-21 10:23:03
5630
1
原创 unity 物体颜色从一端逐渐变到另一端
这个功能主要来自项目中模拟建筑工人每天施工进度情况,一个大构件工人不可能一天完成,这个构件工人完成多少要求该构件变色百分比就为多少直接看效果:变色的走向我们可以通过程序控制就是和shader简单交互就行,我这里是个简单的demo 大体思路没毛病 还是简单粗暴看代码吧unity的shader(封装的都不知道啥玩意)真的石乐志,一点不奔放,由于版本这块 查api差点放弃,有点op
2017-11-20 14:37:21
5709
19
原创 unity3D多点测量、多边形面积测量
直接先看先看效果,多点测量:任意点构成的多边形面积测量(面积显示在左上角显示在模型感觉太乱):觉得要注意的就是点的自动缝合这块,多边形绘制顶点实时连接最后一个点,时间坐标与屏幕坐标到GUI坐标系之间的装换,还是直接上代码明了核心脚本:using UnityEngine;using System.Collections;using System.Collectio
2017-11-17 17:04:55
8698
8
原创 unity3D与Socket通信_01
我会持续记录自己unity与socket交互从入门到运用到项目中的经历,今天带来一个入门的简单Demo,了解socket基本原理,一些用法基本在代码注释里说的很清楚服务端代码:using UnityEngine;using System.Collections;using System.Net;using System.Net.Sockets;using System;using
2017-09-22 18:11:32
655
原创 Unity 播放gif
unity自身是不支持gif图片的播放,通过C#system.Drawing.dll 把gif整合到图集里 一张一张播放达到动态图的效果首先打开你打开你当前使用unity的文件位置->Data->Mono->lib->mono->2.0->System,Drawing.dll 复制到你新建的工程的Assets目录下随便找个.gif动态图片丢到StreamingAssets文件下
2017-09-21 17:08:55
17984
6
原创 unity通过鼠标批量删除(隐藏)物体
一个模型层级很多 通过点击或者长按来一次处理一个gameobject处理模型效率实在低,于是怎么通过鼠标框选来处理模型呢?随便建个场景测试下,用几个cube 代替特别复杂的模型试试效果:我这里为了省事直接把cube拖拽到数组里的,实际开发中可以通过定义的事件动态存储模型 Dictionary对应的存储脚本;using UnityEngine;using S
2017-09-08 13:58:21
3324
原创 UGUI动态生成Mesh图形、赋予贴图和颜色
新建一个场景,加一个空对象在GameObject上分别添加MeshFilter,MeshRenderer在GameObject上挂上一个脚本效果:脚本:using UnityEngine;using System.Collections;using UnityEngine.UI;public class MyMeshTest : MonoBehaviour { V
2017-09-07 17:19:43
4841
2
原创 unity3D 长按Button使button失效点击事件
长按按钮模拟弹出一个删除按钮 然后禁止这个按钮的点击事件using UnityEngine;using System.Collections;using UnityEngine.EventSystems;using System;using UnityEngine.UI;public class ButtonTest : MonoBehaviour,
2017-08-24 18:15:08
6000
原创 Unity3D实现Android上下状态栏显示
对于安卓手机适配是件很蛋疼的事,安卓手机种类繁多,那么比如华为手机上下都有状态栏,unity发布出来的apk默认是无法显示安卓的状态栏的。默认发布出来这样的:写过脚本设置发布出来这样:写个工具类:最后在你脚本你需求的周期函数里写上两句话就行了上面可以实现所有安卓手机状态栏的显示,具体实现原理和细节Q+724996335,咱可以一起探讨学习,截图码字太麻烦。
2017-08-18 10:14:49
3714
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人