1.纹理操作

1.1 重复、旋转、位移、缩放

重复

但是要在水平方向上重复,还得允许

按照刚才的重复方式

如果设置为镜像重复

位移

旋转

1.2 翻转与alpha生成颜色

正常的图

不翻转默认是翻转的

预乘透明度

预先乘透明度

主要是会有一个描边的效果

2.纹理属性

2.1 纹理过滤

比如一张原图很大,但是到3D场景中要变小,两个分辨率是不一样的

放大两种方法

第一种方式是最近邻

直接取的是像素来放大

最近邻就是由原图附近去找然后模拟一些颜色

设为线性,这个就比较光滑

缩小

最接近的像素,较粗糙

线性,求平均

但是这两种都还是有瑕疵,所以诞生了

mipmap解决摩尔纹条纹

mipmap原理是先算好缩小一倍的样子,再算缩小一倍的样子,再算,以此循环

这是默认的方式

注意这四种生成mipmap要开起,不然又会产生魔纹

剩下三种见上,无非就是性能消耗

各项异性anisotropy解决倾斜模糊问题

3.jpg_png_webp_dds_ktx_hdr_exr格式纹理

同一个鱼眼图不同格式

这些格式里面最小的是ktx2,最大是hdr,主要就是曝光不同,没有太大曝光要求,肯定越小越好

3.1 英伟达导出优化压缩

打开软件,打开图片,正常第一步选择8bit,rgba

也可以选择其他比如第二个就是hdr

右下角导出

可选格式

后面用到可以回看视频教程

3.2 threejs中使用KTX2_DDS_TGA纹理

要使用ktx要导入加载器

使用加载器要先实例化一个文件,文件位置在

移动到public下面

导出为etx2图片最好采用编码

是否翻转图片,在导出时设置

因为设置代码会不起效果

导出的时候如果点击了生成mipmap,那么久不能成为场景贴图,这句代码失去效果

所以最好不勾选

其他的图片就类似

3.3设置高动态范围全景背景色调映射和色调曝光

这是针对于hdr图的

加载hdr

背景色调

是给渲染器加

值有

第三个一般用于室外更柔和,四五个模拟电影质感

曝光

3.4 高动态范围EXR_TIF_PNG加载使用

这三个都可以使用hdr的功能

跨平台

tif类似于hdr也可以调节曝光

4.材质深度模式

离相机远近叫做深度

深度图用到的z-buffer算法

说白了深度效果就是为了在3D中实现遮挡效果

要完成深度,就需要两张图,一张绘制出来的渲染图,一张顺带用代码生成的深度图,那么两者结合深度图越白色的地方就会渲染的比较黑,实现阴影效果,深度越黑的地方实现遮挡效果

深度设置有三种

用在函数里面的有

一般小于等于用的多

输入像素就是渲染图,缓冲器就是深度图

当前有两个平面

不写入

总是写入

深度写入和深度测试代码

深度写入就是深度图会写入进来,虽然看不到但是存在于内存中

深度测试就是检不检测深度,比如这里设置的是比他小就会被大的遮挡,这个红色要比有光的要大,那么从红色望过去按理说会遮挡住有光,那么此时不开启有光的深度测试,就不再检测深度,同时渲染比红色后渲染,那么就会看到此时深度不生效

如果做深度测试

5.材质混合模式

混合模式可用值

设置混合模式,前面都是定义好的,只有最后一种自定义选择的时候,才能去选择blending下面的设置

不混合

完全不透明,透明区域用白色覆盖

additive

两个颜色直接相加,比如背景墙的黄色和平面的红色相加 ,白色加上任何颜色还是白色

这种用在光上常见,两个光结合

目标颜色也就是背景减去原颜色也就是红色,那就是绿色

其他颜色减去白色都是黑色

直接相乘

两个颜色相乘会得到一个更暗的颜色

透明乘任何都是白色

剩下就是自定义

5.1透明冰块透明液体透明杯子多个透明物体混合渲染

一个模型杯子

里面是装有水的,但是外面看不见

原因是水是透明的,透明跟玻璃混合有一些问题

加载模型微调数据

先渲染冰块再水再杯子

隐藏杯子和水,把冰块材质变为透明

显示水,发现冰块不见

拿到水的材质,重新设置材质,并且为透明,透明度为0.5

其原因就是这里没有设置混合,所以默认就是原先水的透明度就是1,很透明,和里面透明物体相乘就还是很透明1,那就完全看不到里面,所以如果要解决,就把水的透明度调低

然后同样设置杯子材质透明度

此时能够勉强看到水和冰块

第二种解决办法就是混合

首先先把水混合调为自定义

此时就可以gui去调节

同理设置杯子

6.裁剪

6.1 裁剪平面

比如现在有这个一个物体

这是一个

裁剪是材质的属性,一共三个

首先创建一个平面,这个平面是一个数学库,不会真正大小,第一个参数是什么位置,比如下面这个例子就是一个三围向量,但是平行于y轴

第二个参数就是与原点的距离

然后设置材质的裁剪平面,并且在渲染器打开裁剪平面

然后就可以通过设置刚才的两个属性,单独来设置就是这么设置,来达到一个裁剪的不同效果

裁剪也可以创建多个裁剪平面放入数组

第一个是平行于y轴,第二个是平行于x轴,也就是第一个右边,第二个上面会保留

而并集就是所有,也就是两个都满足的才会保留

默认的效果是并集,也可以交集,但是交集就是各满足各的都可以保留

6.2 裁剪场景

裁剪场景就要用到渲染器的属性

xy从什么地方开始,裁剪宽高多少

那么此时另外一边,就可以空出来去弄其他的场景,甚至相机都可以再来一个

比如现在再来一个场景

7.模板渲染

现在有一个平面一个球

现在实现一个效果,让小球只渲染在平面上,没了平面,就没了小球,这时候就需要平面作为一个模板

首先需要开启

首先两个都要设置属性允许写入

然后在模板(平面处)设置mask代表者写入值允许范围多少

ref是一个基准值,模板和写入模板的应该保持一致,并且要在范围内

然后是缓冲区判断,就是什么时候允许写入,这个值表示当他们相等时写入

最后当深度值和缓冲都相等时,在模板处设置通过写入方式,固定的值

7.1 实现金属切割面

前面裁剪物体后,会发现裁剪到的区域是空心的,如果想要实心呢

实现效果,创建平面,材质,注意属性metalness是金属度,roughness是粗糙度

那现在就可以用到模板了,只要切面才显示

两个物体首先是里面这个物体

ThreeJs-05纹理材质高级操作的更多相关文章

  1. 数据分析05 /pandas的高级操作

    数据分析05 /pandas的高级操作 目录 数据分析05 /pandas的高级操作 1. 替换操作 2. 映射操作 3. 运算工具 4. 映射索引 / 更改之前索引 5. 排序实现的随机抽样/打乱表 ...

  2. pandas高级操作

    pandas高级操作 import numpy as np import pandas as pd from pandas import DataFrame,Series 替换操作 替换操作可以同步作 ...

  3. [Session] SessionHelper2---C#关于Session高级操作帮助类 (转载)

    点击下载 SessionHelper2.rar 这个类是关于Session的一些高级操作1.添加时限制时间2.读取对象3.读取数据等等看下面代码吧 /// <summary> /// 联系 ...

  4. cassandra高级操作之索引、排序以及分页

    本次就给大家讲讲cassandra的高级操作:索引.排序和分页:处于性能的考虑,cassandra对这些支持都比较简单,所以我们不能希望cassandra完全适用于我们的逻辑,而是应该将我们的逻辑设计 ...

  5. MySQL学习笔记_9_MySQL高级操作(上)

    MySQL高级操作(上) 一.MySQL表复制 create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构 insert into t2 ...

  6. MySQL学习笔记_10_MySQL高级操作(下)

    MySQL高级操作(下) 五.MySQL预处理语句 1.设置预处理stmt,传递一个数据作为where的判断条件 prepare stmt from "select * from table ...

  7. python列表(list)的使用技巧及高级操作

    python列表(list)的使用技巧及高级操作置顶 2018年03月25日 13:39:41 顽劣的石头 阅读数:5478 标签: python extend bisect list enumera ...

  8. C语言指针的高级操作

    C语言指针的高级操作 指针  指针 在上篇博客中我介绍了C语言指针的最基本操作,那么我在这篇博客中会介绍一下C语言指针的一些骚操作. 指向指针的指针 这名字乍一听有点拗口,再次一听就更加拗口了.先看定 ...

  9. django之创建第8-3个项目-数据库数据提取之高级操作

    1.配置test2.html <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  10. SpringMVC整合Mongodb开发,高级操作

    开发环境: 操作系统:windows xpMongodb:2.0.6依 赖 包:Spring3.2.2 + spring-data-mongodb-1.3.0 + Spring-data-1.5 +  ...

随机推荐

  1. 系统编程-进程-探究父子进程的数据区、堆、栈空间/ 当带缓存的C库函数遇上fork

    1. test1 #include <stdio.h> #include <unistd.h> #include <stdlib.h> /******全局变量位于数 ...

  2. k8s StorageClass 存储类

    目录 一.概述 1.StorageClass 对象定义 2.StorageClass YAML 示例 二.StorageClass 字段 1.provisioner(存储制备器) 1.1.内置制备器 ...

  3. 神经网络之卷积篇:详解为什么使用卷积?(Why convolutions?)

    详解为什么使用卷积? 来分析一下卷积在神经网络中如此受用的原因,然后对如何整合这些卷积,如何通过一个标注过的训练集训练卷积神经网络做个简单概括.和只用全连接层相比,卷积层的两个主要优势在于参数共享和稀 ...

  4. 运输小猫娘之再续 5k 传奇

    写的比较意识流 前情提要 上回书说到,5k 因为拯救大家被炸断了 \(1000000007\) 米的牛至中的十五千米,尽管大家的欢呼声如此热烈,就像大家的热量正在像烈火一样散发出来,但是 5k 却无心 ...

  5. 10-04 NOIP模拟赛

    10-04 NOIP模拟赛 喜提80+30+10=120分 T1 水管(flow) 题目描述 某国有 \(n\) 个城市,水利调配非常有问题,这导致部分地区出现严重的缺水,而部分地区却全年洪灾泛滥.政 ...

  6. iOS通知使用小结

    最近在项目开发中遇到了一个问题,首页底部菜单和底部子菜单的互动.需求是这样的,编辑状态下点击红色删除按钮,首页底部菜单移除该项,子菜单中对应项选中状态设置为未选中,典型的一对多方式.刚开始的方案是想通 ...

  7. 配置 kali linux 的 apt (包管理工具) ,换成国内源

    1. 查看 apt 的源 输入命令: vim /etc/apt/sources.list 修改之后: 快捷键 A 进入编辑模式 : ESC 键 然后 输入 "  :wq  "  就 ...

  8. python中队列deque的使用

    队列,堆栈是程序开发中常用的两种数据存储模型.python中队列怎么运用呢?以下内容介绍了队列的使用和队列的函数. from collections import deque q = deque() ...

  9. rocketmq安全漏洞

    漏洞内容 服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)[原理扫描] 该漏洞存在于SSL renegotiation的过程中.对于使用SSL重协商功能的 ...

  10. day15-三大基本结构

    顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构. 语句和语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组 ...