前言

当初在选择自己项目的美术风格时,由于自己的美术基础实在是太差,所以选择了体素风格来构建(其实还是MagicaVoxel的建模操作很容易上手),但是将自己千辛万苦做好的模型导入至项目中时,出现了这样或那样的问题,难受的心情如潮涌。在各大搜索引擎搜索无果,以及在“*乎”发问直到现在都没人回答的情况下,决定自己动手丰衣足食(老一辈的智慧还是很有前瞻性的)。也为了各位志同道合的小伙伴们,特写下这个“MagicaVoxel import to UE4 101”。

正文(博客园貌似不支持markdown分割线语法(lll¬ω¬))

在导入模型的时候首先遇到的问题就是导入后再进行构建光照会出现如下图所示的情况

阴影生成都很成功,但是模型是黑的,在官方文档以及各路搜索均查了一遍,得出的一个结论是:UE4对只含有一套UV贴图的模型不太友好,这类模型放上去都会这样。这之后在许多地方尝试过,比如用UE4自带的UV编辑器或者更改UV通道,均告失败,在我以为必须要使用3DSMax时(甚至已经打开了B站的3DSMax教程),我又在油管上搜索了一下,幸运的是在评论中就有人遇见了同样的问题,UP给的解决方案是将导入后的模型的光照类型由静态更改为可移动物体,如下图所示(不过我选的是固定)

后来经过尝试,其实将类型更改为固定也可以解决问题。最终在场景中的表现如下:
与我自己想要的效果一致,事后又在官方文档查询了一下关于静态光照,固定光照,以及可移动物体光照之间的区别:

静态光照

其光照渲染数据几乎完全是依赖物体自带的UV贴图,其中引擎参与的实时渲染部分不多(甚至没有),渲染完成后不能更改物体的位置,大小,旋转参数以及光源的强度,颜色,位置。个人理解为与现在游戏开发中常用的“预渲染”差不多,比如PSV上的《高达破坏者3》、《杀戮地带》等(还有个极其写真的国际象棋游戏,忘了叫啥了)都运用的是预渲染处理。不过预渲染是完全将场景中的阴影和光影效果(比如少量光线的反射和折射)“印”在相应的贴图上(大白话:其实就是将VRay或者其他渲染组件渲染的结果打包成贴图一类的)。一般这类技术多用在移动设备上。

固定光照

与静态光照最大的不同是,光源的属性可以改变,一般是场景中以场景物件存在的物体所使用的,多用在主机与PC游戏上。

动态光照(又名可移动物体光照)

这种光照计算方法占用的计算资源是固定光照的20倍(这个玄学的倍数是Epic官方给出的,我也很迷(笑)),多用于可移动NPC以及玩家操纵的对象。其中所用到的光照算法最多,不过即使这样,也并不是模拟出了最真实的光照效果(现在才发现老黄的实时光线追踪是真的强,能省掉不少计算资源,但为什么实时光追却很吃配置?)

本篇结语

看来在本人这方面的欠缺还很多,这会作为一个系列长期更新下去,就像UE4 C++系列一样,多谢各位的阅读,如果有什么建议或者为了指出文中的错误,非常欢迎在评论区留言。

如何将MagicaVoxel模型导入UE4中(1)的更多相关文章

  1. 如何将MagicaVoxel模型导入UE4中(2)

    前言 当可以把MagicaVoxel的静态模型导入到UE4后,我又开始不满足了.默认第三人称蓝图的"汽车碰撞人偶(雾)"与场景中的体素画风格格不入,于是,我便想着用自己建造的体素画 ...

  2. 不可能的工作:在FBX模型导入脚本中生成模型的预置体

    #if UNITY_EDITOR using System.Collections; using System.Collections.Generic; using System.IO; using ...

  3. 3dsMax模型转UE4

    转自:http://blog.csdn.net/qq_24835213/article/details/68063344 一.模型设置: 1.将Vary材质转成标准材质 2.将模型减面 3.加一套UV ...

  4. Unity3d中模型导入轴向不对的解决方法

    在unity3d中导入模型,经常会遇到模型的轴向与unity中默认的轴向不符合的情况. 网上有很多解决办法都是说在3dmax中导出模型时修改模型的轴向,那么我接下来讲的就是如何在unity里面修改模型 ...

  5. 3D max模型导入unity 3D中注意事项

    一.单位,比例统一   在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. ...

  6. DL4J中文文档/Keras模型导入/函数模型

    导入Keras函数模型 假设使用Keras的函数API开始定义一个简单的MLP: from keras.models import Model from keras.layers import Den ...

  7. 【自制插件】将MMD4Mecanim转换的MMD模型导入maya

    这个已经废弃了_(:зゝ∠)_,另外做了升级版: http://www.cnblogs.com/marisa/p/5174150.html ============================== ...

  8. UE4 中Struct Emum 类型的定义方式 笔记

    UE4 基础,但是不经常用总是忘记,做个笔记加深记忆: 图方便就随便贴一个项目中的STRUCT和 Enum 的.h 文件 Note:虽然USTRUCT可以定义函数,但是不能加UFUNCTION 标签喔 ...

  9. UE4中使用数据表(Data Table)

    本文依据官方文档数据驱动游戏性元素整理而来. 做过游戏的应该都清楚,如果游戏稍微有点规模,那么使用数据驱动来做游戏一般是必不可少的一步,一般也就是策划通过本表的方式来解决.下面我们来简单说一下UE4中 ...

随机推荐

  1. RHEL 6.6配置网易CentOS镜像的yum源小结

       之前没有使用过网易CentOS镜像的yum源,最近由于需要,遂在一台测试服务器验证.测试了一下如何配置使用网易的Cent0S的yum源.此文仅仅是笔记性质,参考了网上大量资料(文末"参 ...

  2. 转载:关于STM32硬件I2C读写EEPROM代码实现原理的理解与总结

    http://home.eeworld.com.cn/my/space-uid-716241-blogid-655190.html 一.I2C协议简介 I2C是两线式串行总线,用于连接微控制器及其外围 ...

  3. 【心得】Lattice EPC3 PCS使用经验

    [博客导航] [导航]FPGA相关 一.目的 将使用过程中遇到的问题随时记录,共享经验心得. 二.心得随笔 1.仿真脚本 为避免生成PCS IP之后,仿真时忘记添加参数文件,可以在仿真脚本中添加以下代 ...

  4. 纯CSS实现自动轮播,CSS变量的定义与使用,计算属性的使用

    先来看一下实现的效果: 实现原理: HTML中使用ul>li存放图片 CSS使用CSS3的animation来完成动画 <!-- HTML --> <section class ...

  5. 基于阿里云平台的使用python脚本发送短信

    第一步:点击短信服务下的帮助文档 第二步:安装python的SDK:点击安装python sdk 第三步:直接通过python的pip工具安装即可,方便快捷: 第四步:点击红框进行测试: 第五步:测试 ...

  6. 验证登录的前世今生:session、cookie

    参考地址:彻底理解cookie,session,token 使用JSON Web Token设计单点登录系统 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录 ...

  7. python--基础知识点梳理(二)面向对象

    面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定在一起,进行封装,优点:快速高效 ,减少代码重写 面向对象三大特性:封装.继承.多态 # 封装的意义,隐藏实现细节 将属性和方法放到一起 ...

  8. 使用Runtime的objc_copyClassNamesForImage和objc_getClassList获取类

    一.介绍 objc_copyClassNamesForImage:拷贝动态库类列表,也即当前工程下自己创建的所有类 objc_getClassList:获取所有类列表,也即当前工程下所有类(含系统类. ...

  9. python 操作zookeeper详解

    ZooKeeper 简介 ZooKeeper 是一个分布式的.开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件.它是一 ...

  10. vue 渐变 进度条 progress

    废话 不多少说 ,直接上代码 新建文件 gradual-progress.vue <!-- * @Author: gfc * @Date: 2019-11-07 14:00:11 * @Last ...