Threejs in autonomous driving -(5)图片替代模型

在自动驾驶实际中的研发工具中,camera一般是跟随主车进行移动的。那么主车是以固定视角展示给用户的。所以并不需要使用一个很漂亮的模型。由此可见我们完全可以使用图片来代替主车模型。来加速我们的页面加载速度和提升视觉效果。

geometry + texture尝试

如果简单把图片作为纹理贴在多边形上有多种问题:

1.因为,图片很难达到和模型完全匹配。(uv也非常难以调整)
2.而且一个6面多边形即使把高度设置为1也会看起来很奇怪。
3.通过多边形做主车来贴纹理的方式,主车转弯时会因为矩阵转换导致问题意想不到的效果。

结论:显而易见使用geometry + textrue的方式并不能实现。

Sprite

我们需要用到一个threejs的特殊的载体, Sprite
Sprite是一个总是面朝着摄像机的平面,通常含有使用一个半透明的纹理。

通过这种方式我们可以轻松的把texture应用在sprite,视觉上看起来也非常的棒。


import adcPng from 'assets/model/car.png';

let texture = new THREE.TextureLoader()
    .load(adcPng);
texture.center.set(0, 0);
texture.needsUpdate = true;

let material = new THREE.SpriteMaterial({
    map: texture,
    sizeAttenuation: true,
    transparent: true,
    alphaTest: 0.5,
    opacity: 1
});
let sprite = new THREE.Sprite(material);

car.scale.set(3.5, 3.5, .8); // 需要对sprite进行缩放
car.add(sprite);
scene.add(car);


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文首发于个人博客:Lam's Blog - 【OpenGL-ES】二维纹理,文章由MarkDown语法编写,可能...
    格子林ll阅读 9,233评论 0 9
  • 这个是我刚刚整理出的Unity面试题,为了帮助大家面试,同时帮助大家更好地复习Unity知识点,如果大家发现有什么...
    编程小火鸡阅读 9,311评论 2 34
  • Unity技术面试题 一:什么是协同程序? 答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话...
    沐冉阅读 7,943评论 1 19
  • http://blog.csdn.net/wangdingqiaoit/article/details/51457...
    jerryhigh阅读 10,759评论 0 8
  • 转载自VR设计云课堂[https://www.jianshu.com/u/c7ffdc4b379e]Unity S...
    水月凡阅读 4,692评论 0 0