新的场景编辑器

场景编辑器,又是场景编辑器,大概一年前我曾写过一个基于BSP的场景编辑器,配合当时的引擎。经过这将近一年的时间我对场景编辑器和bsp,portal,pvs又有了更加透彻的了解。

 

可能有的朋友已经用过Unreal,worldcalf(cs的编辑器)等。我总结一下这些编辑器。

 

首先是单位,他们的1米使用的是64各单位。我开始很奇怪为什么用这么不零不整的单位,为什么不用100代表1米,或者1代表一米,这样不是更加自然。但是深入研究发现这样做是有历史原因的。在早期的场景编辑器quake1,2那个时代没有什么所谓的静态模型,场景中的一切都是用编辑器做出来的,需要网上面刷贴图,如果把64作为一米,则可以很好的和贴图尺寸相对应,也就是说一张128x128的贴图他将覆盖4平方米的区域,这样就可以很好的再贴图和场景之间统一单位。

 

然后是为什么要提供三视图(顶视图,俯视图,侧视图)编辑场景,而不向现在的室外场景编辑器直接摆放导入的物体。这是因为他们都是使用室内空间管理的算法管理场景也就是bsp(关于bsp算法可以去google找,有一大堆文章,而且也不是什么新鲜的东西了)。bsp对场景建模有一定要求,要精确的处理墙与墙之间的连接等,如果出现裂缝可能会导致bsp计算错误。而且要确保所有参与bsp运算的固体都是凸的等等。这些是很难在max里保证的,这也是为什么大多数室内场景编辑都要提供创建并编辑固体功能的原因。

 

对于现代的显卡而言降低渲染批次对于性能的提升远高于精确筛拣那几个面,所以现代的bsp室内场景编辑器并不像以前那样事无巨细的编辑,他只是搭一搭场景的结构,剩下的细节用静态模型填充,而且也要过细的摆放固体参与bsp切分。

 

bsp算法不能处理室外场景么?答案当然是否定的,使用unreal制作的大量的机遇室外场景的游戏已经给出了有利的证明。

 

 

下面说一说我的场景编辑器将要提供的功能

1. 第一条没得说,必然要提供固体的编辑,这些是bsp运算的基础,而且要提供固体之间的csg操作,这些都已经在上一个编辑器里面做过了,应该问题不大。

2. 提供静态模型的摆放

3. 提供地形编辑

4. 提供延迟渲染+shadowmap和光照贴图两套光照方案

5. 操作易用性

 

面临的问题主要就是编辑器使用的场景结构是否要在引擎内提供支持,这也是我之前伯克中提到的问题。这种需要编译的场景编辑器,其在编辑器中场景组织方式和游戏真正运行时的场景组织方式是不同的,甚至是质的不同。如果把编辑器模式下的场景组织管理也写道引擎中,那么事实上这种场景使用也只有编辑器用。

当然一种折衷的方案是在构造好固体场景后先进性bsp编译,这时切换到引擎的场景方式,之后的摆放静态模型就喝这个无关了。一旦修改场景固体,则需切换到编辑器场景模式,直到重新编译之火,听起来似乎更复杂了。

如果单纯的使用编辑器场景管理,一个值得担心的问题就是管理效率和有效筛选。这个还需要进一步思考。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: three.js场景编辑器是一个用于创建和编辑three.js场景的图形用户界面工具。它允许用户通过可视化方式添加、删除和修改场景中的对象,同时还提供了一些工具和功能来进行相机控制、光源调整、材质管理等操作。 通过场景编辑器,用户可以很容易地创建一个包含几何体、光源和材质的三维场景。用户可以通过简单的拖拽和点击操作在场景中添加几何体,例如立方体、球体等,也可以导入自定义的模型文件来创建更复杂的几何体。 场景编辑器还提供了对场景中对象的属性进行编辑的功能,例如改变几何体的位置、旋转和缩放等操作。用户可以通过鼠标控制来实时预览对象的变化,并进行微调。 此外,场景编辑器还提供了相机控制工具,允许用户通过拖拽和缩放来调整视角和镜头位置。用户可以轻松切换不同的相机模式,例如透视投影和正交投影,并实时查看相机的视图。 光源也是场景编辑器中的一个重要组件。用户可以调整光源的强度、颜色和位置等属性,并实时预览光源对场景的影响。此外,还可以添加多个光源,以实现更复杂的光照效果。 最后,场景编辑器还提供了材质管理功能,允许用户为对象应用不同的材质和纹理。用户可以选择不同的材质类型,并进行颜色、透明度、纹理等属性的设置。 总之,three.js场景编辑器是一个强大的工具,它简化了创建和编辑three.js场景的过程,使用户能够以可视化的方式快速构建出复杂的三维场景。它适用于开发人员、设计师和艺术家等各个领域的用户,为他们提供了一个直观、高效的创作平台。 ### 回答2: three.js场景编辑器是一个用于创建、编辑和管理three.js场景的工具。它提供了一个直观的用户界面,使用户可以轻松地添加、移动或删除对象,设置对象的属性,如位置、旋转和缩放,并为对象应用材质和纹理。场景编辑器还允许用户通过拖放操作从预设库中添加对象,如几何体、灯光和相机,以及从文件系统导入其自定义模型。除了基本操作之外,场景编辑器还提供了高级功能,如动画编辑和脚本编写。 使用场景编辑器,用户可以快速构建复杂的三维场景,无需编写代码。它为用户提供了一种可视化的方式来创建和调整场景中的元素,使用户能够实时查看并修改场景。在编辑器中创建的场景可以保存为JSON或OBJ格式,并且可以轻松地导出到其他three.js项目中使用。 场景编辑器还具有与其他用户共享场景的功能。用户可以将他们创建的场景分享给其他用户,或者从其他用户那里获取灵感和借鉴。这为用户提供了一个交流和学习的平台,有助于促进three.js社区的发展和成长。 总之,three.js场景编辑器是一个功能强大且易于使用的工具,它为用户提供了创建和编辑three.js场景的便捷方式。无论是初学者还是有经验的开发人员,都可以受益于它的功能,从而更轻松地构建出惊人的三维场景。 ### 回答3: three.js场景编辑器是一个用于创建和编辑3D场景的工具。它基于three.js库,提供了一个用户友好的界面,使用户可以轻松地添加、编辑和管理3D模型、光源、材质、纹理等元素,以创建逼真的3D场景场景编辑器的主要功能包括创建和管理场景、添加和调整3D模型、设置光源和阴影、调整材质和纹理等。用户可以通过拖拽操作将3D模型导入场景,并使用编辑器提供的工具进行位置、旋转和缩放等调整。同时,用户可以选择不同类型的光源,并设置其位置、颜色和强度来实现适合场景的光照效果。此外,编辑器还提供了丰富的材质和纹理选项,让用户可以为模型添加不同的外观效果。 除了基本的编辑功能,场景编辑器还提供了一些高级功能,如动画编辑和脚本编写。用户可以使用动画编辑功能创建和编辑模型的动画效果,包括模型的运动、旋转和缩放等。同时,用户还可以使用脚本编写功能,通过编写JavaScript代码来实现更复杂的交互和动画效果。 总之,three.js场景编辑器是一个功能强大且易于使用的工具,它为用户提供了便捷的方式来创建和编辑3D场景。无论是开发者还是设计师,都可以利用这个编辑器来实现自己的创意,并打造出独特而精美的3D场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值