3D漫游的分类 3D Navigation Taxonomy
在2001年CHI发表的论文中1,Tan等人提出了一种对3D漫游的分类方法。
当时关于3D漫游(3D Navigation)的研究主要分为两种:一种是发掘有关漫游的认知原则,一种是开发一些具体的漫游技术,用于解决某些特定场景的问题。他们总结了相关的研究如下:
认知原则:
Thorndyke & Hayes-Roth等人:地图和自由探索所获得的空间信息的不同之处;
Darken el al:大型虚拟环境中的认知和设计原则;
Furnas:通过大型数据结构,探索有效的漫游的“可穿越性(traversability)”和“可漫游性(navigability)”;
Bowman:对虚拟漫游的运动方面进行的上层分类;
漫游技术:
-2D:(常常以缩放的方式帮助用户进行漫游)
Masui:以在每个视区内改变搜索区域的方式进行漫游;
Bederson:Pad++,以缩放为主要方式进行漫游;
Igarashi:基于滚动速率的自动缩放,可在滚动速度增加时为用户提供全局文档视图;
Tan等人基于Igarashi的研究,解决了两个问题:如何让用户准确的从全局视图转换到特定的目标区域;还有如何让用户查看某个特定对象。
- 3D:
(同时拥有多个坐标视图)
Fukatsu:同时提供给用户鸟瞰全局图和局部视图;
Stoakley:类似,不过是提供微型的3D世界,而不是鸟瞰图;
Robinett:用缩放的方法让用户快速飞到不同的区域;
Ware:提出“cyclopean scaling”和根据深度调节的飞行,通过物体的距离调节飞行速度。
Elvins:创建3D略缩图(一个微型的虚拟世界)来帮助用户寻找地标;
(扭曲虚拟世界)
鱼眼视图;
透视墙;
Document Lens;
Desert Fog;
Tan等人提出了一个他们认为的初步漫游分类结构,并且根据这个结构来探索关于漫游的设计空间。也就是说,通过画出纵横格子找出所有的可能性,当然有些格子已经被填满了,哪些竟然还没有填满,那没有被填满的格子,就是被遗漏的、值得思考的设计空间。通过这样的方式来发掘新的漫游技术,然后发掘的新技术反过来又启发完善和扩展原本的分类结构。以这样的方式来帮助3D漫游的研究。
Tan等人提出的分类:
* 任务:根据漫游的目的进行分类。
- 探索 Explore:获取勘察信息
- 搜索 Search:确定目标位置,并且移动到目标
- 检查 Inspect:稳定在某个视角观察物体
* 移动控制(Travel Control): 为了实现以上目的的一些解决方案。
- 移动(Travel)具体指的是:虚拟环境中的视角改变,这个视角信息包括:1、位置;2、朝向;3、速度。
- 对于以上三个方面,设计者都必须提供相应的函数来控制他们的值。这个函数根据这几个方面来确定:1、环境状态;2、用户的状态;3、以上两种的综合状态。
* 用户界面
硬件/输入决定了系统给用户呈现的affordance和用户能的控制自由度(DOF)。
设计者要在硬件限制下,选择一个直观的映射方式,将输入和镜头控制联系起来。通常来讲,输入的自由度都是不足的,必须要设置不同的模式来用于不同场景下视角的控制。如果系统能够有效的识别用户的目的,那就可以做到自动地来根据输入设置模式,否则用户就要自己来选择模式。
P.S. 但是我认为,不一定是根据任务/目的来决定运动的模式,可能是根据环境来决定的,比如飞得高的时候想要飞得快一些,不然由于环境变化太慢(因为远),而导致用户觉得自己运动太慢(其实可能并没有很慢)。
除了输入,输出也是设计者必须要关注的。这一点经常被设计者忽略,但是其实系统给用户的输出(反馈)方式,和是否给用户带来了沉浸感,对于用户是否能有效地完成漫游任务有着极大的影响。所以作者认为,设计者的目标就是要让输出带给用户准确的信息:及时、直观、信息丰富。
1 Tan, Desney S., George G. Robertson, and Mary Czerwinski. “Exploring 3D Navigation: Combining Speed-Coupled Flying with Orbiting.” In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 418–425. CHI ’01. New York, NY, USA: ACM, 2001. https://doi.org/10.1145/365024.365307.
3D漫游的分类 3D Navigation Taxonomy的更多相关文章
- OpenGL实现3D漫游的理解
这篇文章主要参考以下两篇博客: 推导相机变换矩阵 OpenGL系列教程之五:OpenGL矩阵类 上面的第一篇是理论的讲解,第二篇有实例代码,我在后面会给出自己写的主函数,依赖的类可以从第二篇参考中下载 ...
- 3DTools TrackballDecorator实现3D漫游
原文:3DTools TrackballDecorator实现3D漫游 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37591671/art ...
- 物联网3D,物业基础设施3D运维,使用webgl(three.js)与物联网设备结合案例。搭建智慧楼宇,智慧园区,3D园区、3D物业设施,3D楼宇管理系统——第八课
写在前面的废话: 很久没有更新文章了,这段时间一直忙于项目落地,虽然很忙,但是感觉没有总结,没有提炼的日子,总是让人感觉飘飘忽忽的. 所幸放下一些事,抽出一些时间,把近期的项目做一些整理与记录.也算是 ...
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
- 1-Highcharts 3D图之普通3D柱状图与带空值
<!DOCTYPE> <html lang='en'> <head> <title>1-Highcharts 3D图之普通3D柱状图与带空值</t ...
- 3d模型 手办制作 3d model manual production
3d模型 手办制作 3d model manual production 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313 ...
- 使用webgl(three.js)搭建3D智慧园区、3D大屏,3D楼宇,智慧灯杆三维展示,3D灯杆,web版3D,bim管理系统——第六课
前言: 今年是建国70周年,爱国热情异常的高涨,为自己身在如此安全.蓬勃发展的国家深感自豪. 我们公司楼下为庆祝国庆,拉了这样的标语,每个人做好一件事,就组成了我们强大的祖国. 看到这句话,深有感触, ...
- 单图像三维重建、2D到3D风格迁移和3D DeepDream
作者:Longway Date:2020-04-25 来源:单图像三维重建.2D到3D风格迁移和3D DeepDream 项目网址:http://hiroharu-kato.com/projects_ ...
- 3D深色金属哥特3D项目工具小图标icon高清设计素材
3D深色金属哥特3D项目工具小图标icon高清设计素材
随机推荐
- 机器学习性能度量指标:ROC曲线、查准率、查全率、F1
错误率 在常见的具体机器学习算法模型中,一般都使用错误率来优化loss function来保证模型达到最优. \[错误率=\frac{分类错误的样本}{样本总数}\] \[error=\frac{1} ...
- JPA多条件复杂SQL动态分页查询
概述 ORM映射为我们带来便利的同时,也失去了较大灵活性,如果SQL较复杂,要进行动态查询,那必定是一件头疼的事情(也可能是lz还没发现好的方法),记录下自己用的三种复杂查询方式. 环境 spring ...
- Vim高手,从来不用鼠标2——替换、撤销、缩进、查找
本文章原创首发于公众号:编程三分钟 vim 替换.撤销.缩进.查找 上一次我们掌握了移动.跳转.定位.操作(删除.复制.粘贴),基本使用vim脱离鼠标完全是可以做到的了.速记如下: 移动: h,l,j ...
- CodeForces - 940E - Cashback +贪心+DP
传送门:CodeForces - 940E - Cashback 题意:在一个长度为n的数组中,可以分出长度为 k 连续的多个数组b(每个数组 b 的 k 可不相同),然后,可以对每个数组 b 进行删 ...
- lightoj 1060 - nth Permutation(组合数+贪心)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1060 题解:如果是不重复数的这些操作可以用康托展开的逆来求,如果是有重复数字出 ...
- go 学习笔记之无心插柳柳成荫的接口和无为而治的空接口
如果你还了解编程概念中的接口概念,那么我建议你最好还是先阅读上一篇文章.详情请点击 go 学习笔记之万万没想到宠物店竟然催生出面向接口编程? ,否则的话,请自动忽略上文,继续探索 Go 语言的接口有什 ...
- 【3】Decision tree(决策树)
前言 Decision tree is one of the most popular classification tools 它用一个训练数据集学到一个映射,该映射以未知类别的新实例作为输入,输出 ...
- Java日志之Slf4j,Log4J,logback原理总结
几乎任何应用,一定是需要日志的. 那么,面对种类繁多的日志框架和配置,我们该何去何从? 1.前奏:我是在研究mybatis源码的过程中才意识到需要搞明白日志原理这回事,因为mybatis(和一些其他开 ...
- Jenkins教程(五)构建Java服务Docker镜像
本文主旨 主要记录下如何使用Jenkins构建Java服务的Docker镜像,以及手动部署测试下 前期准备 已安装Jenkins 为jenkins用户添加到docker组内 本地装有maven,配置或 ...
- Egiht(八种方法)
Problem Description The 15-puzzle has been around for over 100 years; even if you don't know it by t ...