美术如何创建 skybox 贴图资源?

2023-10-28 19:01

本文主要是介绍美术如何创建 skybox 贴图资源?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 目的
  • PS手绘+Panorama To Cubemap
  • PS手绘+Pano2VR
  • Skybox & Cubemap Tutorial (Maya & Photoshop)
  • Unity 中使用 ReflectionProbe 生成 Cubemap 然后再 PS 调整
  • PS直接手绘 cubemap
  • Blender 导入 Panorama,然后烘焙到 cubemap,再导入unity中使用
  • Blender cube->to sphere->再绘制模型上的纹理 (50s教程)
  • 其他的
  • References


目的

学习新的自定义天空的做法
可以再日后,自己制作,或是教会美术如何制作

这篇文章只有 美术相关的内容
程序的可以是 连连看,或是 自己撸代码实现 程序化天空盒


PS手绘+Panorama To Cubemap

参考视频:Create Custom Skybox for Unity with Photoshop - 这个是直接使用 PS 手绘 + Panorama to cubemap

PS手绘-Panorama图

方法很简单

  1. 暗灰 填充 地板
  2. 暖白 填充 顶部
  3. 使用画笔工具+SHIFT健 绘制水平面上的晚霞:橙红、橙色、蓝色,然后高斯模糊

最后生成这种的一张图:
在这里插入图片描述

Panorama To Cubemap,将刚刚PS手绘的的天空盒转为Cubemap
使用在线将全景图转为Cubemap 图
在线工具:Panorama to Cubemap
在这里插入图片描述

在这里插入图片描述


PS手绘+Pano2VR

PS手绘-Panorama图
在这里插入图片描述

Pano2VR,将Panorama图转为Cubemap

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
导入unity使用

在这里插入图片描述

顶部扭曲变形比较严重
在这里插入图片描述

调整 Invoer selecteren
在这里插入图片描述
选择 Clinder
在这里插入图片描述
调整前缀重新导出
在这里插入图片描述

可以看到顶部和底部都是用有问题的
底部的我们可以不管,只用会之前的就OK,因为几乎是纯颜色的
在这里插入图片描述

在这里插入图片描述

PS再次手绘调整顶部内容

在这里插入图片描述

调整为:
在这里插入图片描述

最终unity再次验证效果
可以看到,侧边的像素变形那边么严重了
顶部的也不会黑块了
在这里插入图片描述


Skybox & Cubemap Tutorial (Maya & Photoshop)

虽然这种方式不太高效 和 方便,当也算是其中一种制作方式

Skybox & Cubemap Tutorial (Maya & Photoshop) - 从maya如何建模cube,展开UV,如果从PS中抠图,反正各种P图,生成Cubemap,注意好每个面的UV相邻边的内容要对上,讲得非常详细

在这里插入图片描述

展开UV
在这里插入图片描述

每个UV之前的面、临边 的拓扑关系如下:
在这里插入图片描述

在这里插入图片描述

如果UV相邻关系不对,则需要调整,如下:
在这里插入图片描述

注意每个相邻便需要保留的像素为,这部分的 “倒梯形” 的像素内容
在这里插入图片描述
最后重新调整 uv 与 图像对齐
在这里插入图片描述


Unity 中使用 ReflectionProbe 生成 Cubemap 然后再 PS 调整

还有一些是在引擎中,使用烘焙工具生成 cubemap的
unity 中的话,先布置好场景,然后给需要拍摄的位置,放一个 ReflectionProbe 组件,选择 Type : Bake,然后点击 bake 即可

在这里插入图片描述

然后将 Inspector 选择 debug 模式
在这里插入图片描述

点击 Baked Texture 对应的 ReflectionProbe-0 ,让 Project 视图自动选中,对应烘焙出来的 cubemap
然后我们将这个 cubemap CTRL +D 复制一份出来,在放到我们对应的资源目录
如果需要调整的话,我们可以在PS 中自行PS,方法和之前的差不多,不过这次我们是在 cubemap 图下调整的
而不是panorama图,所以我们注意边界详解的问题
在这里插入图片描述

在PS中打开,看着个 “十字” 图不太一样
在这里插入图片描述

然后我们标记上序号
看看 unity 里面的对应的方向
在这里插入图片描述

从下图中,我们可以看出来:

  • 1是前
  • 2是后
  • 3是上(顶)
  • 4是下(底)
  • 5是相对1号的左手
  • 4是相对1号的右手
    在这里插入图片描述

在 unity 对应的 cubemap UV种类,有 竖、横 的十字,也有 竖、横 的一字,如下
参考unity 手册:Cubemaps
在这里插入图片描述

上面的方向你要看懂的话,需要想了解unity 的轴向,如下图
在这里插入图片描述

  • 右边,是x轴正方向 (左边,就是x轴负方向)
  • 上面,是y轴正方向 (下面,就是y轴负方向)
  • 前面,是z轴正方向 (后面,就是z轴负方向)

UE 应该也有类似的工具


PS直接手绘 cubemap

参考视频: How to create a hand-painted skybox for Unity using Photoshop | Mini-tutorial

和之前一样,你想要了解 unity cubemap uv 的坐标种类
在这里插入图片描述
还有 panorama 全景 uv,叫做:LatLong (Latitude-Longitude, sometimes called cylindrical) uv 布局
在这里插入图片描述

然后你可以,这上面的 uv layout 图,放到 unity 里面,看看效果
在这里插入图片描述

这里使用的是 横向 的十字 uv
在这里插入图片描述

后面就没啥可以说的了,直接绘制 cubemap 内容


Blender 导入 Panorama,然后烘焙到 cubemap,再导入unity中使用

参考视频: Creating Cubemap Skybox in Blender 2.9 for Unity - Blender 导入 Panorama,然后烘焙到 cubemap,再导入unity中使用

先 在 polyhaven/hdris 找一张 HDR 的 panorama 图

在这里插入图片描述

然后丢到 blender 里面,设置好 材质,使用上刚刚那个 panorama 贴图,然后烘焙 cubemap

如下,直接烘焙 diffuse color,margin=0px (就是不需要 uv 间隔)
在这里插入图片描述

下面是烘焙参数
在这里插入图片描述
然后将导出来的cubemap,使用PS裁剪画布顶底多余的区域
在这里插入图片描述

然后直接导入 unity 里面使用,设置好 texture 的 参数,完毕


Blender cube->to sphere->再绘制模型上的纹理 (50s教程)

参考视频: Blender Quick Tutorial - Sky Box

首先,开局一个 cube
在这里插入图片描述
将uv切开,设置为 横向 十字 uv
在这里插入图片描述
在这里插入图片描述

然后 细分一下面数
在这里插入图片描述

点两下 subedivide,细分两级即可,如下图
(按照你的需求,你可以多细分一些也是OK的)
在这里插入图片描述

然后我们使用 to sphere
在这里插入图片描述

调整到接近球体
在这里插入图片描述

然后再 flip normals 一下 (翻转法线,这样可以再 blender 里面进入这个 sphere 里面图画 cubemap 的内容)
在这里插入图片描述

将面的法线平滑一下
在这里插入图片描述

然后进入到 texture 里面图画
在这里插入图片描述

在 Texture Paint 模式里面,你可以抠图进来贴到 sphere 内壁,或是手绘 sphere 内壁的纹理就O了
在这里插入图片描述

然后将这图导入游戏引擎使用就O了
在这里插入图片描述


其他的

  • 还有一些是使用 野外实景 拍摄,使用相机 前后左右顶底 6个方向拍摄 cubemap 素材,然后回来PS合成调整的方式生成 cubemap
  • 还有另一种是直接使用 panorama 拍摄设备,拍下来就是全景
  • 还有一种使用 PS 里面的 3D/Sphere Panorama 菜单的功能 (不过现在这个功能给 adobe 从 后续新的 PS 中剥离出去了,改成独立收费的另一个软件,也是给别人吐槽疯了)
  • 还有 shader 程序化天空盒,这里不讲,感兴趣自行搜索

大家也可以自行去搜索
我上面就是搬砖,thx for you watching…


References

  • Create Custom Skybox for Unity with Photoshop - 这个是直接使用 PS 手绘 + Panorama to cubemap
  • Skybox - Photoshop to Unity 3D - PS手绘+Pano2VR
  • Creating Cubemap Skybox in Blender 2.9 for Unity - Blender 导入 Panorama,然后烘焙到 cubemap,再导入unity中使用
    • 还有另一个类似的,不过这个视频更早的: Blender Series: Create A Video Game Skybox

这篇关于美术如何创建 skybox 贴图资源?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/295297

相关文章

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用SpringBoot创建一个RESTful API的详细步骤

《使用SpringBoot创建一个RESTfulAPI的详细步骤》使用Java的SpringBoot创建RESTfulAPI可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤... 目录一、创建 Spring Boot 项目二、创建控制器类(Controller Class)三、运行