水面渲染

水面模拟--FFT Ocean 前言 FFTOcean是一种基于统计学模型的水面模拟算法,原论文为SIGGRAPH的一篇文章Simulating Ocean Water。 先看一下效果 一、需要设置的一些参数 首先文章假设节点平面坐标X=(x,z),需要根据X来计算高度y。接着需要设定的参数有:海洋的实际大小(Lx,Lz),将海洋划分为网格的大小(N,M),海洋环境中的风速V,以及风向Vdir,还有幅度A。 二、高度场函数推导 文章先是定义高度场的计算公式为: 其中 为了方便实现,我们假设 故.. 阅读详情

      看了那么多文章,终于动手自己写水面渲染的程序了。选择了使用顶点纹理来实现(FFT。。。看了2遍信号与系统,还是没有明白怎么变换求解-_-#)。弄了3天,总算把水面的初步动画实现了,画面效果还没进行优化,纹理也没贴,不过效果还不错,CPU占用率出乎意料的低,网格大小为256x256,并且没有任何裁减的情况下,6600GT可以跑到70帧左右。本来打算用MDX2.0的,结果写了一点点,就出了一大堆问题,没有文档实在是麻烦的事情,还是回到了1.0。对顶点纹理进行采样的sampler参数设置差点让我崩溃了,查了无数资料,都没有关于如何在MDX里进行设置的例子。最后,模仿nVIDIA SDK里一个C++程序的例子写了一个,居然成功了~~。VS2003里不能调试shader实在是痛苦啊,但是拼写错误就害死人啊T_T。

记下一些容易犯的低级错误 ,以免再错-_-:
1.  顶点索引的顺序是很重要的, 切记需要按顺时针顺序来定义;
2.  矩阵相乘的顺序是有讲究的;
3.  拜托,写demo的时候先画个草图,设计好物体,观察点的位置,不要弄了半天发现物体根本不在视线内~_~;
4.  顶点纹理一定要是32bit的float point格式,否则就算程序可以运行,也不会有结果 +_+;
5.  注意tex2Dlod这个函数接收的纹理坐标参数为float4,而不是普通的float2  =.=;
6.  顶点纹理sampler的参数和pixar shader是不一样的,需要用特殊的标识符 @_@;
7. 拼写~~!!一定要注意拼写的正确性啊~~ 0_0;

800×600的海面波涛汹涌的效果如何在游戏中逼真呈现?FFT算法帮你搞定! FFT,即快速傅里叶变换,它是用于处理周期性信号的强大算法。说白了,FFT能将复杂的波形拆解成一系列简单的正弦波,再将这些正弦波组合起来形成逼真的海浪效果。举个例子,你可以想象大海上的波浪就像一堆叠加起来的不同频率的正弦波。有的波浪大,有的波浪小,而FFT算法正是能迅速计算出这些波形的幅度、频率和相位,让我们只需通过数学运算就可以生成动态变化的海面。 阅读详情

相关推荐

水面渲染小结

水面渲染小结 本文版权归我所有,仅供个人学习使用,请勿转载,勿用于任何商业用途。由于本人水平有限,难免出错,欢迎大家和我交流。作者:claymanBlog:http://blog.youkuaiyun.com/soilworkclayman_joe@yahoo.com.cn             从几何模型上来看,水面其实和地面是一样的,可以看做普通的均匀网格,不同点在于地形中,顶点高度

Clayman的专栏 2万+

FFT海浪模拟——理论部分整理(一)

自变量为x的函数f(x)可看作一个随空间变化的信号(空域信号),只要满足一定条件,它就可以表示为一堆不同频率的随空间变化的正弦信号(空域正弦信号)的线性组合(或积分)

hnbxs的博客 683

简单实现水面渲染 Shader

Unity Shader·简单实现水面效果 前言 最近在研究一些水面渲染的效果,参考了网上很多大神的效果。 这里推荐大家去看一哈浅墨大佬的总结《真实感水体渲染技术总结》 我实现的是比较简单的水面效果,模拟水面波浪的算法时采用的Gerstner算法进行模拟的,令人意外的感觉效果还挺不错的。 https://zhuanlan.zhihu.com/p/95917609 视频链接 https://www....

qq_42115447的博客 4913

游戏里的水面是怎么做的

摘要: 水面渲染是游戏开发中最具挑战性的自然现象之一,涉及波形生成、法线贴图、菲涅尔效应、反射折射等多个技术环节。本文详细解析了水面渲染的核心要素,包括Gerstner波和FFT海洋的波形生成方法,法线贴图细节处理,菲涅尔效应控制反射折射比例,以及屏幕空间反射与折射的实现。此外,还介绍了泡沫效果、水下雾化和性能优化技巧,并针对不同性能需求提供了低、中、高三种级别的技术方案。通过合理组合这些技术,开发者可以在性能与视觉效果之间取得平衡,实现逼真的水面渲染效果。

gghhb12的博客 473

简单实现卡通水面渲染 Shader

简单实现卡通水面渲染 Shader 前言 上一篇是实现了pbr的水面效果,这次延申拓展一下实现一下卡通的水面效果。 效果截图 动图效果: 大致思路 normal的流动 + 菲涅尔lerp + 多阶色 + 反射 + 折射 + 水沫扭曲 + 水沫流动 + Gerstner算法 属性 _Diff_Set ("漫反射调节", Range(0, 10)) = 1.71 _...

qq_42115447的博客 3587

Unreal Engine开发:高级渲染技术_7.高级水面渲染技术

高级水面渲染技术在 Unreal Engine 中涉及多个方面,包括水面材质、法线贴图、反射和折射、动态水波、泡沫和涟漪效果,以及光照模型的调整。通过这些技术的综合应用,可以实现高度真实的水面效果。然而,这些技术也会带来较高的计算成本,因此优化这些技术是确保游戏性能的关键。通过使用 LOD 技术、减少反射和折射的计算、使用预计算纹理和优化粒子系统,可以显著提升水面渲染的性能。希望这些内容能帮助你在 Unreal Engine 中实现高级水面渲染效果。

chenlz2007的博客 1128

Cesium水面渲染(一)

水面渲染大体有三种技术路线:平面反射、顶点动画、流体模拟,考虑到性能问题,这里使用平面反射的方式实现。和常规物体的渲染方式不同,水面的渲染我们除了要处理反射,还需要处理折射的内容。对于水面的反射处理,通常有以下几种方式:平面反射(利用镜像相机)、屏幕空间反射(SSR)、立方体贴图反射、光线追踪。技术CPU开销GPU开销显存占用平面反射高中中高SSR低高低立方体贴图低极低低光线追踪中极高高。

qq_31966409的博客 1855

从传统扫描到SSN:Tessent数据包技术如何减少90%测试时间

本文深入探讨了Tessent流式扫描网络(SSN)如何通过其核心的数据包技术,彻底改变芯片测试范式。该技术将测试数据封装成标准化数据包,在共享总线上进行智能路由与分发,实现了动态带宽分配与核心独立测试,从而将复杂SoC(如AI芯片)的总体测试时间大幅削减90%,并显著提升测试灵活性与可扩展性。

meat5的博客 490

Unity实现水面渲染效果

镜面反射 将摄像机的位置和视锥体关于镜面进行对称变换,渲染一张RenderTexture。在渲染水面时,计算水面某像素在屏幕中的位置,根据该位置对RenderTexture进行采样。 参考资料 GPU Gems Shader相册第6期 --- 实时水面模拟与渲染(一) Unity Shader学习笔记(28)噪声纹理、消融效果、水波效果、噪声雾效 Unity3D教程:实现水...

Hunger's Blog 1万+

PDS联合Modelsim仿真报错(Error loading design) line6报错 -novopt已禁用 (全网最详细!!!!!)

发现这个文档是Pango自动生成的,也就是说每一次我们点击"Run Behavior Simulation"的时候,PDS都会自动生成一次这个./run_behav_simulate.tcl文件,所以就算我们这一次把这个文件修改了,我点击"Run Behavior Simulation"想让它再跑一次正确的仿真,它此时又重新生成了这个带有-novopt的错误tcl文件,仿真依旧不能成功。问题真的是出在这里,那我们修改这个./run_behav_simulate.tcl文件就好了,但事实并非如此!

weixin_74058783的博客 3191

Axure原型模板与元件库APP交互设计素材(附资料)

在Axure中,手机模型是展示APP或小程序界面效果的重要工具。通过导入手机模型元件,设计师可以更加直观地模拟真实设备的显示效果,从而更准确地评估设计的可行性和用户体验。Axure官方及第三方资源库中提供了多种品牌和型号的手机模型,如iPhone、Android等,设计师可以根据项目需求选择合适的模型进行使用。Axure作为一款强大的原型设计工具,为APP和小程序的设计与开发提供了丰富的界面组件元件库和交互设计素材。

招风的黑耳优快云 1980

shader 反射 水面_大规模水面渲染

分享一下我的程序中水面的具体实现,水面渲染一般包括三个部分:反射、透射、波动模拟,以下将依次介绍这三种效果的实现。 反射 实时渲染中实现反射最常用的方案是ssr(screen space reflections),也就是屏幕空间的反射,只需要额外的一个后处理pass 特别适合延迟渲染,它将屏幕内可见的内容渲染到反射表面作为反射贴图使用。实现思路类似于光线追踪的做法,如下图所示 求取反射和场景...

weixin_39634438的博客 901

保姆级教程:用Kalibr搞定Intel D435i三目(RGB+双目)相机联合标定,附完整ROSbag录制避坑指南

本文详细介绍了如何使用Kalibr工具对Intel D435i三目相机(RGB+双目)进行高精度联合标定,包括硬件准备、ROSbag录制技巧、Kalibr标定实战及结果验证。特别针对实际工程中的常见问题提供了解决方案,帮助开发者提升SLAM和三维重建等应用的精度。

weixin_42524762的博客 405

Unity3D-实现水面渲染

http://gad.qq.com/article/detail/7166434

zhangming19901120的专栏 3106

如何使用PostgreSQL数据库进行数据仓库的ETL操作

本文旨在为数据工程师、数据库管理员和分析师提供使用PostgreSQL进行数据仓库ETL操作的全面指南。ETL流程的基本原理PostgreSQL在ETL中的独特优势实际ETL实现的技术细节性能优化和最佳实践常见问题的解决方案首先介绍ETL和PostgreSQL的基本概念然后深入探讨核心技术和实现方法接着提供实际案例和代码示例最后讨论优化技巧和未来趋势ETL:提取(Extract)、转换(Transform)、加载(Load)的缩写,描述数据从源系统移动到目标数据仓库的过程。

2502_91592937的博客 873

机器人全局路线规划导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对全局路线规划导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 1504

CS16 天空和水面渲染

提高WaterNoise数值,高光处会有Blink闪光效果,但同时整体水面噪声值增加,效果也会跟着改变,这边为了保持其他原本已经调试好的效果,并额外添加Blink效果,选择将WaterNomal和ReflectColor节点暴力复制,简单修改后叠加上去。这段节点让远处法线强度变弱(原理大概就是Object To Clip Pos节点的w分量是顶点到摄像机的距离,w值越大,距离摄像机距离越远,然后用一个除法,相当于距离越远除的数字越大,法线强度就越低,float4这个常量1是确保被除数大于1)

Saladoil的博客 1007

ANSYS——“There is at least 1 small equation solver pivot term”问题的解决办法

ANSYS——“There is at least 1 small equation solver pivot term”问题的解决办法

python_AI_fans的博客 1万+

unity中怎么做河流_做Unity3D中如何实现水面渲染?

一、前言本文旨在与大家一起探讨学习新知识,如有疏漏或者谬误,请大家不吝指出。二、概述在讲之前,我们先来看下最终渲染效果是什么样子的:(示例程序见原文中附件)我们来对水效做一下简单的效果分解。一般地,像很多网上所说的那样,水效=反射 折射菲涅尔效应。这个公式是最简单的,也是最基础的。当然,到真正开发水效时需要考虑的东西就比较多了,在上面这张截图里,我考虑到的效果有:水波的模拟、反射、折射、菲涅尔效应...

weixin_39911567的博客 1130

SAP-ABAP:ABAP 开发基础概念入门:写给刚踏入 SAP 开发世界的新人

本文介绍了 ABAP 开发语言的基础概念,帮助 SAP 开发新人快速入门。主要内容包括: ABAP 的发展历程与核心优势 - 作为 SAP 平台的专属语言,ABAP 在企业级应用开发中具有深度集成、数据处理高效和长期稳定的特点 ABAP 开发环境概览 - 介绍了 SE38、SE80 等关键事务码,以及 ABAP 工作台的核心组件和开发权限管理 基础语法入门 - 重点讲解了 ABAP 特有的数据类型体系(特别是结构体和内表),并通过 Hello World 示例展示程序基本结构 文章通过对比 ABAP 与 J

baidu_35680696的博客 511

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

零基础掌握Unity水面渲染:从Water组件到折射反射的完整实现指南

Unity引擎作为游戏开发的强大工具,其水面渲染系统是打造逼真游戏场景的关键技术之一。本文将带你深入了解UnityCsReference项目中水面渲染的核心实现,从基础的Water组件到复杂的折射反射效果,让你轻松掌握Unity水面渲染的奥秘。 ## Water组件的核心架构与工作原理 在UnityCsReference项目中,水面渲染功能主要通过Water组件实现。该组件位于引擎的图形模块中

gitblog_01058的博客 1272

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

水面倒影可视化渲染方法

水面材质非常重要的一个光学特性就是反射倒影,有了倒影的加持能使水面更加逼真的渲染出来。在片元着色阶段,把 [ -1, 1] 的屏幕坐标转换为 [ 0, 1 ] 的纹理坐标去反射纹理上取值,和原始水面材质的颜色做线性混合就可以看到倒影效果了。有了反射平面后,以反射平面为镜像平面确定反射相机的位置,反射相机的方位角(heading)、翻滚角(roll)保持不变,俯仰角(pitch)取反。修改反射相机的投影矩阵,以改变近裁剪面的位置,使得近裁剪面为水面,这样水面下方的物体就不会被拍摄到,也就不会出现在倒影中了。

2301_79959413的博客 3552

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

lisp 河道水面线计算_一波江水动京城:游戏水面渲染与互动

本文作者为雷火内资深的引擎开发工程师 @GoldenGoat 欢迎大家在评论区提问和我们互动哦!-------------------------------------------------------------------无论是“清风徐来,水波不兴”的平静澄澈,还是“满川风雨看潮生”的波澜壮阔,水在游戏中总能起到至关重要的作用。想要让游戏中的阴晴变幻如真实生活般细致微妙,优秀的水渲染不可或...

weixin_34337134的博客 715

Vray如何渲染逼真水面蓝海创意云教程

蓝海创意云教你如何用Vray来渲染水面,一起来看看吧。 1、在SketchUp中创建一个简单的矩形池;再画一个方形作为水面,将水面创建组件,注意正面朝上。 2、材质库默认的水材质效果都不太理想,所以我决定创建新的材质,在创建资源-材质处选择「通用」(Generic),并重命名为“pool water”; 首先调整「漫反射」(Diffuse)、「反射」(Reflec...

vsorender的博客 866
上一篇: nVIDIA SDK White Paper ----Vertex Texture Fetch Water
下一篇: 动画调整
soilwork
博客等级 码龄23年 290粉丝 116原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值