CG——blender程序纹理

CG——blender程序纹理,第1张

blender的纹理节点就那么几个

noise / voronior / wave / Musgrave / magic...以及我个人很少用的 brick checker~

what??blender你逗我呢???人家 C4D 光是 noise 那么多种变化都超过你的纹理数量了~你让我们怎么用???

事实上

blender 看似寥寥几个纹理,其实可以组合出无穷无尽的变化。

第一个,我们首先要了解的是

颜色无穷尽,纹理无穷尽

blender 的 cycles 渲染器中,

我们有一个 texture coordinate 节点

可以用于控制纹理的映射方式。

如果把这个节点的各个出口链接上 emission 节点,再 链接 output(此处强烈推荐开启 “node wrangler” 插件)

就会看到一些很丑的渐变色。

就是纹理无穷尽的秘密 —— cycles(事实上,是绝大多数渲染器) 把所有的映射信息都以颜色的方式,储存在节点当中。

所以当我们改变颜色,就可以改变纹理的映射。

OK~自然知道了这个 “秘密” 那就来试试看吧。

把一个 noise 链接到 noise 上 会怎么样?

嘶~(黑人问号脸~)似乎跟提高 noise 的 distortion 没什么区别啊???

别灰心,再试试看~把作为控制映射的 noise 节点(就是第一个noise)节点的 detail 提到最大试试看?

同样是扭曲~我这里可以提供更丰富的细节是吧?除此以外,我还能通过 scale distortion 等来控制扭曲的大小,以及双重扭曲。

ok,开始制作程序纹理木桌。

我希望这一张木桌有很紧密细腻的竖纹。

一开始我试着用这个 wave 解决。加点 distortion 加点 detail 。。。

结果就是丑到没法看~

接下来我试着用一个拉伸的 noise 作为映射坐标链接到 wave 上

效果不错~

可是单纯这样的纹理也太过单调。

我想加一点年轮木纹在里面。如下图

利用一个拉伸的 voronoi 链亩举亮接到 wave 即迅宽可得到拉伸的木纹(这里为了大家能够看得清楚,我减小了拉伸数值,事实上,我的拉伸更强)

什么?你问我中间的一个 colorramp 有什么用????

记住 颜色无穷尽,纹理无穷尽

在调节中间的 colorramp 。可以在不影响 voronoi 数量的情况下,控制每一个 voronoi 的大小

在不影响年轮数量的情况下,控制每一个年轮的大小。

但是。。。。这个年轮怎么这么干净啊哈???人家真实的年轮可是张酱紫的啊?

想想~我们刚刚试一下什么纹理作为坐标进行映射会造成扭曲?

noise 对不对 ??

在 voronoi 的基础上,mix 一个 noise

对不对?这就是一个扭曲答老的木纹了~

抱歉,我想再重申一遍

颜色无穷尽,纹理无穷尽~~!!

不要被 “一个纹理链接另一个纹理” 这种思路限制死了。

我只要它的年轮木纹,

我们所有的木纹位置都是基于前面的 voronoi 生成的

所以

我们可以用前面的 voronoi 作为遮罩提取年轮。

回头这个年轮叠在刚刚做出来的木纹上就ok了~

接下来做木桌的划痕污渍~

先来几个

高强度拉伸

不同旋转角度

高密度的

noise

然后给他们分别加上 colorramp 修剪掉大部分的黑色

只留下寥寥几条黑色

然后把他们 multi 在一起

然后分别用一点点noise 和一点点 wave 做污渍,

也是 multi 在一起

再把污渍划痕 multi 再一起

叠在刚刚做好的纹理上,

你的桌子就做好~~~

场景中其他事物,我也是以这样的方法

做一下纹理污渍上去,如下图

顺便说一下。

在金属材质中

最影响质感的 其实是 roughness

其次才是 bump(如果你有bump 的话)

2018-04-19

  纹理映射,简单的理解就是把一副图像映射到图形上的过程。比如一个图片像壁纸一样贴在物体的表面。这个技术袭兄可以从过年一个特殊类型标中的着色器中查询值,例如 颜色值。现在所有OpenGL着色阶段都有纹理映射,常用的阶段为处理片元的环境中。

  说完纹理映射,那什么是纹理呢?纹理图(简称纹理),通常是摄像机捕获的,也可以是程序中生成的,也可以是OpenGL以纹理代替显示设备为目标渲染的。纹理是2维的,但是OpenGL也支持许多其他类型的纹理,比如 1维、3维、立方漏禅空体映射、缓冲纹理、数组纹理等。

  纹理由纹素组成,通常包括颜色值。也有很多实用程序把纹理看作是可以在着色器中查询的表,用于所需要的任意目的。使用步骤如下:

• 创建一个纹理对象,为它加载纹素数据

• 为顶点增加纹理坐标

• 把纹理图与着色器中将要使用的纹理采样器关联

• 在着色器中使用纹理采样器来查询纹素值

  OpenGL支持许多类型的维数和布局可变的纹理对象,每个纹理对象表示组成完整纹理的一组图像。每个图像可以是纹素的1维、2维或者3维数组,并且很多图像可以放在另一个图像的顶部来形成mipmap金字塔。 但并不是所有的纹理都可以表示纹理数组或者形成mipmap金字塔 ,比如 矩形纹理对象、纹理缓冲

  另外纹理可以包括1维或者2维切片的数组,这样的纹理成为 数组纹理 ,数组的每一个元素都是一个切片, 立方体映射 就是纹理数组的一个示例,它共有6个面(切片),立方体映射数组表示立方体映射纹理的数组,是6个面的整数倍。

  纹理也可以用于2维和2维数组纹理的 多重采样纹理类型 表示多种采样表面。多重采样是一个用于抗锯齿的术语,其中每个像素被赋予多个独立的颜色,然后在渲染过程中合并这些颜色来生成最终的输出颜色。多重采样纹理对于每个纹素都有几个采样(典型值在2和8之间)。

  纹理通过纹理单元绑定到OpenGL环境,其中纹理单元用命名为GL_TEXTURE0到GL_TEXTUREi的绑定点表示,这里i是实现支持的纹理单元的数组减一。许多纹理可以绑定到同样的环境,因为同一个环境可以支持多个不同的纹理单元。

  纹理一旦被绑定到环境中,着色器就可以使用采样器变量来访问,而采样器变量用匹配纹理的位数来声明。纹理位数(纹理目标)和对应采样器类型(必须在着色器中使用来访问纹理中的纹素)对应如下返瞎:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8184490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存