2.5D(伪3D)站点可视化第一弹
楔子
最近要做一个基站站点的可视化呈现项目。 我们首先尝试的是三维的可视化技术来程序,但是客户反馈的情况是他们的客户端电脑比较差,性能效率都会不好,甚至有的还是云主机。 因此我们先做了一个性能比较极致的3Ddemo,如下图所示:

为了能够尽可能的性能最优,所以想了各种性能优化手段。当然效果上也会有折扣,这个demo与我们本身的一些产品比如3D机房等相比较,效果上面肯定有了很大的差距。不过性能方面还是很不错的。
然而,很不幸,客户在拿到demo测试之后,不满意...。性能还算凑合,但他们还觉得效果不够酷。
配置很低,又要性能高、又要效果炫。这只能化为一句话:

似乎陷入了绝境...
然而 绝处往往逢生,绝处往往有新的希望、新的机会。
2.5D的思想火花
突然想到的是2.5D,这是一种伪3D效果,但是只能体现一个镜头角度的显示效果,不能实现镜头的旋转效果。
其实在很早的时候,我们就有一些2.5D的雏形的东西,比如分层拓扑图和2.5D节点。分层拓扑图甚至可以追溯到Java时代。如下图所示:


把之前的2.5D源代码拿过来读一遍。读了之后,总的思路:主要通过拼凑三个平行四边形来模拟这种3D的效果,技术没有体系。
这种思路对于对象的位置定位和对齐会比较难,开发难度本身也比较大,另外要实现一些好的效果,难度也比较大,要知道客户对于效果的要求并不低。
因此需要想出新的技术思路,最好是有成体系的思路,要摆脱之前的技术思路。当然并不容易,当时我并没有什么好的思路,有很多疑惑,有很多迷茫。之后的很多天里面,都是这种状态。
事情的转机在一次出差。
在拜访一个大客户回酒店的路上,我走在马路上,我的脑中突然蹦出一个想法,为什么不借助3D的思路和部分算法呢,2.5D要呈现的不就是3D的效果吗?所谓2.5D,顾名思义,就是取几勺2D技术,再取几勺3D的技术,一起放到锅里炒一炒,为啥要局限在2D的技术。
我本身研究3D技术很多年,对于3D的相关技术也算是很熟练,突然,似乎所有的事情的想通了,一套成体系的2.5D技术开始在心中生根,发芽,生长。
我的内心很欣喜。(但是表面很平静)
这个事情告诉我们一个道理,弄不懂的问题,不要死抠,多出去走走,说不定就想通了。
2.5D(伪3D)站点可视化第一弹的更多相关文章
- typecho流程原理和插件机制浅析(第一弹)
typecho流程原理和插件机制浅析(第一弹) 兜兜 393 2014年03月28日 发布 推荐 5 推荐 收藏 24 收藏,3.5k 浏览 虽然新版本0.9在多次跳票后终于发布了,在漫长的等待里始终 ...
- WPF 图片浏览 伪3D效果
原文:WPF 图片浏览 伪3D效果 首先上效果图: 因项目要求,需要把图片以"好看"."炫"的效果展示出来,特地研究了一下WPF关于3D方面的制作,奈何最终成果 ...
- 我的长大app开发教程第一弹:Fragment布局
在接下来的一段时间里我会发布一个相对连续的Android教程,这个教程会讲述我是如何从零开始开发“我的长大”这个Android应用. 在开始之前,我先来介绍一下“我的长大”:这是一个校园社交app,准 ...
- Hadoop基础-MapReduce的工作原理第一弹
Hadoop基础-MapReduce的工作原理第一弹 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在本篇博客中,我们将深入学习Hadoop中的MapReduce工作机制,这些知识 ...
- Java基础-程序流程控制第一弹(分支结构/选择结构)
Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...
- RMQ_第一弹_Sparse Table
title: RMQ_第一弹_Sparse Table date: 2018-09-21 21:33:45 tags: acm RMQ ST dp 数据结构 算法 categories: ACM 概述 ...
- codechef 营养题 第一弹
第一弾が始まる! 定期更新しない! 来源:http://wenku.baidu.com/link?url=XOJLwfgMsZp_9nhAK15591XFRgZl7f7_x7wtZ5_3T2peHh5 ...
- 好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字
原文:好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csd ...
- TensorSpace:超酷炫3D神经网络可视化框架
TensorSpace:超酷炫3D神经网络可视化框架 TensorSpace - 一款 3D 模型可视化框架,支持多种模型,帮助你可视化层间输出,更直观地展示模型的输入输出,帮助理解模型结构和输出方法 ...
随机推荐
- Vuex入门实践(中)-多module中的state、mutations、actions和getters
一.前言 上一篇文章<Vuex入门实践(上)>,我们一共实践了vuex的这些内容: 1.在state中定义共享属性,在组件中可使用[$store.state.属性名]访问共享属性 2.在m ...
- 图解kubernetes调度器预选设计实现学习
Scheduler中在进行node选举的时候会首先进行一轮预选流程,即从当前集群中选择一批node节点,本文主要分析k8s在预选流程上一些优秀的筛选设计思想,欢迎大佬们指正 1. 基础设计 1.1 预 ...
- cogs 2109. [NOIP 2015] 运输计划 提高组Day2T3 树链剖分求LCA 二分答案 差分
2109. [NOIP 2015] 运输计划 ★★★☆ 输入文件:transport.in 输出文件:transport.out 简单对比时间限制:3 s 内存限制:256 MB [题 ...
- web网页设计五种布局
1.大框套小框布局 2.通栏布局 3.导航栏在主视觉下方的布局 4.左中右布局 5.环绕式布局
- Go的http包中默认路由匹配规则
# 一.执行流程 首先我们构建一个简单http server: ```go package main import ( "log" "net/http" ) f ...
- [状压DP思路妙题]图
源自 luhong 大爷的 FJ 省冬令营模拟赛题 Statement 给定一个 \(n\) 个点 \(m\) 条边的图,没有重边与自环 每条边的两端点编号之差不超过 \(12\) 求选出一个非空点集 ...
- HBase二次开发之搭建HBase调试环境,如何远程debug HBase源代码
版本 HDP:3.0.1.0 HBase:2.0.0 一.前言 之前的文章也提到过,最近工作中需要对HBase进行二次开发(参照HBase的AES加密方法,为HBase增加SMS4数据加密类型).研究 ...
- HashMap在JDK7和JDK8中的区别
在[深入浅出集合Map]中,已讲述了HashMap在jdk7中实现,在此就不再细说了 JDK7中的HashMap 基于链表+数组实现,底层维护一个Entry数组 Entry<K,V>[] ...
- 实用代码|Linux定时检查应用状态
有时候,我们挂在服务器上的应用会因为一些特殊情况挂掉,致使项目经理又对我们说:又挂了!赶紧去看看!于是又了以下脚本,使用shell编写,用于定时检查应用情况,挂掉则重启.这里以tomcat为例. 根据 ...
- Mac 查看端口占用情况及杀死进程
查看端口占用情况命令 sudo lsof -i :9000 冒号后面就是你需要查看的端口号. TheEternityZhang-MacBook:project zhtony$ sudo lsof -i ...