4k大海海底水面制作方法及海洋凹凸置换纹理下载

本文主要是介绍4k大海海底水面制作方法及海洋凹凸置换纹理下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

一、前言:

模拟海底海面的模拟有多种方式,流体解算,各类纹理插件模拟。但发现有些插件渲染农场不支持,原因很简单,就是缓存巨大,硬盘开销受不了,于是,只能靠各公司自己特效部门解决。后来发现,其实最廉价的方式就是使用纹理序列模拟,最为通用的基础技术。前提是要有高清动态序列。之前出个了maya ocean节点的材质模拟水下焦散效果方法。

二、海底水面创建:

这回是用 bifrost 插件的boss模拟的海面纹理。这个是比较好的海面效果。原理类似。默认我只渲染了1-600 帧,并提供了纹理的创建工程文件。便于根据需要自行渲染更长的帧。
在这里插入图片描述
oceanSurface_02.mb文件使用的是boss插件,如果没安装会提示错误。此文件用于纹理的生成。在这里插入图片描述
贴图的材质,使用的一个沿着Y轴投射的渐变ramp纹理,形成从0-1的置换凹凸区间。这个可以在uv中调试海浪高度的投射范围。如下图:
在这里插入图片描述在这里插入图片描述
使用maya 软件渲染方式快速渲染序列纹理4k图。

三、纹理动画序列图用法:

最终的纹理用法,还是使用了关联到材质凹凸或置换属性上,
需要注意的是aiImage节点在调用序列帧贴图时需要用到filename.####.jpg 格式,否则只能播放第一帧,如下图所示:
在这里插入图片描述
帧序列(紫红色框中帧数栏)调用表达式循环算法 ; 实现了随时间变化产生的1-600和600-1的往复循环,

 $picCycleFrame =600; // 循环总帧数
if(pow(-1,( floor(frame/$picCycleFrame) ) ) ==1  )
{aiImage4.frame= frame%$picCycleFrame + 1;
}else{aiImage4.frame= $picCycleFrame - frame%$picCycleFrame;
}

降速表达式如下:真实的播放帧数 = $picCycleFrame 总循环帧 X s p e e d 播 放 速 度 , 600 帧 循 环 降 速 2 倍 后 , 能 满 足 1200 帧 的 镜 头 。 经 测 试 , 静 态 场 景 中 , speed 播放速度,600帧循环 降速2倍后,能满足1200帧的镜头。经测试,静态场景中, speed60021200speed = 2.0; 时,效果尚可。大运动速度时,需要把$speed = 1000;就是静止状态了。具体情况大家根据实际情况而定。

int $picCycleFrame = 600;
float $speed = 2.0;
aiImage1.frame= floor(( frame%($picCycleFrame*$speed) )/$speed)+1 

最终,贴图序列随着时间,总动在1-100帧间做往复循环播放。如下图:
在这里插入图片描述

海面的模拟还有一个技巧,就是有时候海面是有边界的,比如用一个四方平面来模拟海面,需要放大很多倍,还是会有边界,但由于arnold环境雾会对透明物体材质有影响。后来使用的半球体海面边界过度被包围隐藏在地平线下,可以起到减小纹理少重复,大水面覆盖的目的。
所以,这里使用了半球表面模拟海洋水面,解决了边界无线放大的问题。
在这里插入图片描述
这样,不需要太大的表面积,和重复4k纹理,也可以为中心区海底,创建大表面覆盖的动态水体水面的方法。如下图:测试效果。工程一并提供给大家。
在这里插入图片描述

链接:https://pan.baidu.com/s/118rx1kC78c3AjZdLRAm97g
提取码:k9oo
南无阿弥陀佛。

这篇关于4k大海海底水面制作方法及海洋凹凸置换纹理下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

2. 下载rknn-toolkit2项目

官网链接: https://github.com/airockchip/rknn-toolkit2 安装好git:[[1. Git的安装]] 下载项目: git clone https://github.com/airockchip/rknn-toolkit2.git 或者直接去github下载压缩文件,解压即可。

前端form表单+ifarme方式实现大文件下载

// main.jsimport Vue from 'vue';import App from './App.vue';import { downloadTokenFile } from '@/path/to/your/function'; // 替换为您的函数路径// 将 downloadTokenFile 添加到 Vue 原型上Vue.prototype.$downloadTokenF

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

Tomcat下载压缩包解压后应有如下文件结构

1、bin:存放启动和关闭Tomcat的命令的路径。 2、conf:存放Tomcat的配置,所有的Tomcat的配置都在该路径下设置。 3、lib:存放Tomcat服务器的核心类库(JAR文件),如果需要扩展Tomcat功能,也可将第三方类库复制到该路径下。 4、logs:这是一个空路径,该路径用于保存Tomcat每次运行后产生的日志。 5、temp:保存Web应用运行过程中生成的临时文件

下载/保存/读取 文件,并转成流输出

最近对文件的操作又熟悉了下;现在记载下来:学习在于 坚持!!!不以细小而不为。 实现的是:文件的下载、文件的保存到SD卡、文件的读取输出String 类型、最后是文件转换成流输出;一整套够用了; 重点: 1:   操作网络要记得开线程; 2:更新网络获取的数据 切记用Handler机制; 3:注意代码的可读性(这里面只是保存到SD卡,在项目中切记要对SD卡的有无做判断,然后再获取路径!)

最新OpenStreetMap POI数据(附下载教程)

OSM(OpenStreetMap)POI(Point of Interest)数据是指在OpenStreetMap上标记的各种兴趣点,如餐馆、酒店、公交站、学校等地点。这些数据在地理信息系统(GIS)应用中非常有用,可以帮助进行地图绘制、路径规划以及其他地理分析任务。 这里直接放出下载地址,有需要的可以自行下载,tips:国外城市的数据源质量比国内的要高一些; OpenStreetMap P

PrestaShop免费模块/插件/扩展/工具下载

PrestaShop免费模块/插件/扩展/工具下载 PrestaShop免费模块 适用于您的电子商务网站的PrestaShop模块 现有超过3,000个PrestaShop模块可帮助您自定义在线商店,增加流量,提高转化率并建立客户忠诚度。 使您的电子商务网站成功! 下载(超过142+之多的PrestaShop官网认证的免费模块) 标签PrestaShop免费, PrestaShop免费工

uniapp小程序下载缓存服务器上的图片

1. 使用uni.downloadFile,但是注意下载图片的地址里的域名,需要在微信公众平台里面的downloadFile合法域名进行配置。 export default function downloadAndCacheImage(imageUrl, name) {return new Promise((resolve, reject) => {console.log("imageUrl",

opengl纹理操作

我们在前一课中,学习了简单的像素操作,这意味着我们可以使用各种各样的BMP文件来丰富程序的显示效果,于是我们的OpenGL图形程序也不再像以前总是只显示几个多边形那样单调了。——但是这还不够。虽然我们可以将像素数据按照矩形进行缩小和放大,但是还不足以满足我们的要求。例如要将一幅世界地图绘制到一个球体表面,只使用glPixelZoom这样的函数来进行缩放显然是不够的。OpenGL纹理映射功能支持将