自由学习记录(69)

RectToPolar()将直角坐标系 (笛卡尔坐标系) 的 uv 坐标,转化为极坐标系(θ,r) 

  • uv - centerUV:将坐标原点平移,使 (0.5, 0.5) 变成原点。

  • r = length(uv):距离中心点的半径(从中心向外扩散)。

  • θ = atan2(y, x):当前像素相对于中心的角度(从X轴正方向逆时针为正)。

但这段代码的设计哲学并不是你想的那样。

直接使用极坐标 (θ, r) 当作贴图的 uv 来采样,换句话说:

🌈 它不是在“原图 uv 空间”修改,而是:

使用一个 特殊准备的贴图(它本身是极坐标展开形式),
然后在极坐标中移动采样坐标(r + time) → 直接采样该贴图。

所以这段代码背后其实隐含了 贴图是以极坐标方式展开的结构

也就是说,这张要采样的图,里面的数值信息,就是基于

这一段的规则而响应去设计的形状?

完全正确。这张要被采样的贴图(_MainTex),它的纹理内容是专门为极坐标结构而设计的。

横轴 U(0 → 1):代表 θ(角度)从 -π → +π  
纵轴 V(0 → 1):代表 r(半径)从中心 → 外圈

xxxx

增加了顶点色,对应的就是流动时的,环外淡入,中心淡消失

这里的顶点色是属于模型的,是庄佬自己的disk模型里面带上的数据

appdata里面可以直接取出

【TA入门】极坐标:原理与实现_哔哩哔哩_bilibili

void Rotation(inout float3 vertex) {
用 inout 代表直接修改传入的 vertex 坐标本身。

  • _RotateSpeed 控制旋转快慢,_RotateRange 控制最大旋转角度。

  • frac(_Time.z * speed):把时间变成 [0,1] 的周期

  • * TWO_PI:转成角度(0~2π)

  • sin(...):让角度来回正负摆动。

要转换成弧度制的哟,才可以放到sin() 和cos()里面得出最原始亲切且标准的0到2π变化

直角坐标系转成极坐标

同一个点的表示形式变化

可输出的含义依然可以相同,可以通过平面坐标得到一张uv的准确位置

通过极坐标也可以

src源信息没有发生变化

信息的表现形式sub src---只能针对单独一个 信息读取方read,才有效

一种subsrc只能给出一种规范的读取方法,或者说因为solo read的出现,才导致subsrc的产生

subsrc可以被非规范的读取,但subsrc此时失去sub的形式意义

转换极坐标,是创建subsrc,而读取方式-----对应------sub的诞生

坐标系的转换,emmm

xxxx

Everyone tends to favor those rigid yet honest and motivated junior colleagues. Such individuals are easy to guide. In contrast, those with overly wild and radical ideas, especially when they are new to the organization and hold relatively low - level positions, are generally difficult to mentor.

so,you know what to do

sd了解一下

第四集 了解材质的工作流程_哔哩哔哩_bilibili

xx

做游戏引擎要看的书。。

顶点色作为参数传入

是贴合模型uv的四个通道

实际上只刷了三个通道

在xz轴上的扭动,是两个直接相加的,对顶点的x和z位置移动相互独立,可以完美分离叠加

通过r遮罩,控制移动的数值生效范围-身扭动

通过反r得出脑-脑旋转

x和z方向的扭动

通过vertex.y,加在sin(x+O)里面,y正好规则向下

这里直接再乘以一个值,从而控制波长

总结,可以叠加性,前后可以不先管

效果叠加没问题

写一条语句就默认此时别的不动,比如默认y规律变化从而控制了一个波长的参数

LIGHTING_COORDS(5, 6)

vert里面的normalwS是模型上的一套的,是建立tbn矩阵

而想要在frag里面采样更精准的normalmap,所以要把tbn矩阵传出来,给frag里面解包再转换成真正的世界法线--基于更精准的normalmap

xxxx

给三个指针单独绘制了顶点色

要实现,首先刷顶点色,三个通道挑出三个时针

外暴露三个旋转角度控制值给c#修改

在内部接受一个旋转角度,直接改变到正确的顶点位置

遮罩识别出位置,然后进行偏移,

给这个像素,旋转点

_RotateOffset ("旋转偏移", float3) = (0.0, 3.205, 0.0)

这样写property是不可以的

必须用vector

纯p,假的,中间的部分就是整个针在转,甩着转

vertex.y -= offset * mask; // STEP 1: 先平移到中心点


float radZ = radians(angle * mask);
float sinZ, cosZ;
sincos(radZ, sinZ, cosZ);
vertex.xy = float2(
    vertex.x * cosZ - vertex.y * sinZ,
    vertex.x * sinZ + vertex.y * cosZ
); // STEP 2: 绕Z轴旋转


vertex.y += offset * mask; // STEP 3: 再移回原位置

中间的旋转部分,是默认中心是在原点的旋转方法

首先指针也是同一张uv上的采样块图

要做到旋转图

就是旋转,采样的规则,让之后的采样可以用歪的方式采样三根针

然后显示出来的就是三根针在移动

旋转的方向是单独z angle

所以,必然是有一个offset值,而且必须要准确,

旋转了采样的手段,

旋转的是采样的手段,uv图始终都是三根指针竖着放在固定的位置

可以在shader中修改位置,

纯p,和后面的采样完全独立,采样坐标独立,此是在之前移动顶点的

为什么移动了vertex的位置,但没有影响采样?

控制单个像素的时候

只可以在采样上改位置,

此时三角片已经固定,三个点vertex是固定的

在函数里可以修改顶点的位置,也就是修改三角片的形状

确认三角片形状之后才允许,采样,因为必然的插值需要

插值是必然的,应对于vertex的变化

uv是可以在vert 函数里被修改的,uv传入给vert,是模型,

appdata里面的uv是顶点的uv值

是顶点要采样的位置要在一张uv图上的哪个精确点

模型的默认uv,转换为正常0-1的二维图,而上面的点Scatter,多个独立的雕像

appdata给的是副本

单个雕像点,二维是uv坐标,三维是vertex坐标

数据同源,但分两份,可以分别操作,相互isolate,

可以修改vertex三维形式信息,此时uv二维形式的雕像点信息不变

而到frag处理时,二维的信息回被依然正常使用,三维的vertex变化并不影响二维的采样

进入frag,各个雕塑点被固定(vert可修改副本三维的雕塑点,进入frag雕塑点固定),之间开始被插值,被frag使用

那么雕塑点,,frag里面如何识别其中的插值?自己插在哪? pass

blender video editing里的序列编辑器调整重复的时长怎么调

这个干什么的

---自动关键帧,自动了什么

只要杂播放头下方,对任何场景里的物体做出了什么改变,blend会立刻把这个变化插入关键帧

2d

到新的一帧就清屏幕,以及保留上一帧的效果但是透明

gpencil默认花一帧就清掉上一帧的内容

洋葱皮就是保留上一针的结果,可以调整透明度之类的参数

可以用多帧,前好几针一起叠上来也没有问题

xxxxx

赛博punk的变化,用顶点色通道,分离出使用特效的人和底座,人1底座0

需要两套uv

这个设置是让normalmap生效,像解包那样

xxx

网格,块状的消散,带有随机性,的消散移动方向

分别制作的rgb三个通道(a纯白)

Effectmap三个通道

首先一个切分通道,变成网格

模型面,消失-隐藏,分块,这个块的移动随机性

第三个通道是模型格上的坡度值

(一般也不好命名,因为特效的shader的出创新成分很高)

uniform color clr,纯色,在sd中作为节点使用

xx

特效纹理2,是3dnoise,

模型拽到sd里面,给出信息

选着模型,然后给出bake model info

可以在里面看到模型的多套uv,跳出要的那一套,然后,选择需要的添加操作,这里选Position

就可以对应的烘焙成一张图

bitmap是导入外部图像用的

这么一看最种的效果里,连的节点并没有用很深的变化,还算简约

从模型里面得到了图,然后切格子,为了需要,切割通道,把格子线加实,然后翻转方便识别使用,之后用flood节点,把里面每个格子分开单独处理,很简单的连线,但也可以做出很不错的效果

过程中,单独的uv查看,也并不需要Material的参与,3d view可以不用

中间的线变化的非常急促,这张图存的信息过于高频---对比度高,并不利于压缩

可以做的只有降低这种切分网格的密度

网格信息是模型提供,可以是三角面的形式,也可以是四角面,为了科幻感选择了四面的切割方式

,是使用zbrush切割,得到好的切割图,此时拉入sd中  可以提取出好的这种模型上都是四边形的切割形式

比起单独开一张图存一个通道,硬要把某张图的空a通道里塞进去一张图,不一定是优化,也一样可能变成一张很大的图

低频信息,导出256 的大小就足够了

xx

混乱度,打的高整个格子各自飞远,为0则,完全不变,只是消散效果

分三个材质控制了从脚到头的消散效果

调快头材质波速就会岔开

alphablend 是不预先乘以 透明度

顶点色,模型内置数据,brush刷,

xxxxx

02.引擎架构分层 | GAMES104-现代游戏引擎:从入门到实践_哔哩哔哩_bilibili

psd这样的文件格式,里面存储的很多信息是需要再ps软件上面,相应模块的功能识别,才有用

而引擎是独立的,没有那么多时间管格式的问题,必须要统一,所以,会对Resource有要求

引擎中不管你是jpg还png格式,一定会被先转换成dps格式,高效数据格式,转换的就叫Asset

同理还有word比纯txt要大

每个资产有独立的序列号,相互之间的引用也是一种资产

Gc是资源层的概念,对资源的有效和无效化

老师在第一个半年并没有写很多的graphic feature相关的东西,也不是漂亮的render 和shader

而是在同一数据格式

不止渲染,渲染只是其中一个小部分

先tick logic,再tick render

这个姿态你无论绘制他还是不绘制他,他的这个姿态已经存在了,

此次出现观察者,小明有一双眼睛接受,成为一张2维的图像

(张三有没有打到李四,算逻辑tick,而与render无关,因为无论观察是否存在,张三都打了李四,,而这个逻辑在接触到网络之后,会变的更加复杂)

相机的第一人称晃动----游戏和游戏引擎在feature层打架,

曾经单核现在多核,是巨大的变化,logic和render分到两个线程里,最基础的多线程算法

profiling里判断,每一个小窗口是不是均衡的吃满的,如果有的很满有的吃不掉,大概率是没有采取高级的job式分发任务的多线程使用

游戏引擎里最不追求的就是计算的精确度,为了计算速度,偏离的准确完全不在乎

比如这个自写的新近似计算方法,效率会远高于系统的sqr方法

引擎的数据库中广泛使用的技术

一次性算四个向量,simd的core层的数学计算技术

xxx

在引擎的core层,像c++里面的各个数据结构,链表,数组,都要重新做一遍

因为一般的大量增删数据过程中,会产生大量的空洞,而且内存的使用是不受你控制的

游戏引擎会申请一大块内存,然后自己再内存里建一个小操作系统,这块内存大小几乎不变,不允许被干扰

----

把数据放在一起访问,尽可能按顺序来访问,尽可能一起读写,引擎的内存优化三大方向

平台层的权重没那么小,说是引擎高下之分的地方也不为过

https://github.com/BoomingTech/Piccolo

104的引擎github

xxxx

shift在sd里直接拖动整个连接点

xxxx

coloso:杀手镜头是远景,是像没有透视一样,非常长焦

Grease Pencil 对象中,有两个核心绘图组成部分:

名称作用
🖊️ Stroke(描边)用线条绘制出来的轮廓,路径数据
🎨 Fill(填充)用来填充封闭区域内部的颜色(可选)

Grease Pencil 对象(Object)
└── 图层(Layer)
    └── 帧(Frame)
        └── 描边(Stroke)← 就是你说的 Stroke
            └── 点(Points)
所以:
🟥 Stroke 是 Grease Pencil 的基本构成单位之一,本质上是一段“手绘路径”。

Fill 本身并不是一个“图形”,而是材质属性,绑定在封闭的 Stroke 上。

alt d 复制引用---blender

shift 右键  转折材质点

ev快,cycles是有噪点的慢渲染,高精

是两种渲染方式,开发者尽量让两者结果相同

xx

保证网格大小尽量相同,对渲染有用

极点可以创造皱纹,但好坏掺半

眼睛和嘴巴附近不要做极点

加subdivision修改器,可以让角色的建模细分,而对性能的影响则会消减许多,modifier便利于此

Mirror,用modifier里面的,也是可以的,插件就是添加修改器到object上

融并边,删除一个面中多余的线,点

形成了循环的结构,之后就能产生光影流动的感觉

----Mesh Tools 插件或 Pie Menu 插件,用了才有这个快捷轮盘

老手在建模的时候,这些快捷键是最优先使用,其他都可以省去

英文命令中文对应名称快捷键
Q) Shrink/Fatten收缩/膨胀Alt + S(默认)
W) Smooth Vertices平滑顶点Ctrl + V 菜单中也能找到
E) Subdivide细分Right Click > Subdivide
A) Bevel倒角Ctrl + B
D) Loop Cut and Slide环形切割并滑移Ctrl + R
Z) Extrude挤出E
X) Inset Faces插入面I
C) Knife Topology Tool拓扑刀具(切割工具)K

嘴这里的变形时,点变化不能张很大角度,这也是建模的一个难点

一开始就做大笑容是很困难的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89129.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 敏感信息入库加密全面解决方案

Spring Boot 敏感信息入库加密全面解决方案 在当今数据驱动的时代,保护用户隐私数据已成为系统设计的必备要求。本文将详细介绍 Spring Boot 应用中敏感数据加密存储的完整方案,涵盖从基础实现到生产级落地的全流程。 一、加密方案选型 1.1 常见加密类型对比 加密类型特点…

docker0网卡没有ip一步解决

正常查看ip的时候一直显示没有ip这里先删除docker0网卡ip link delete docker0然后重启服务systemctl restart docker再次查看显示有ip了并且查看配置文件也是正常的cat /etc/docker/daemon.json {"registry-mirrors": ["https://docker.m.daocloud.io",&q…

MYSQL-索引篇

索引结构概述MySQL 的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种:索引结构描述BTree索引最常见的索引类型,大部分引擎都支持 B 树索引Hash索引底层数据结构是用哈希表实现的,只有精确…

(纯新手教程)HTML零基础教学

(下一章:python网络爬虫)HTML 简介HTML(HyperText Markup Language,超文本标记语言)是用于创建网页的标准标记语言。什么是 HTML?HTML 不是编程语言,而是一种标记语言使用标签来描述…

前端面试宝典---项目难点2-智能问答对话框采用虚拟列表动态渲染可视区域元素(10万+条数据)

引言 在我参与智能问答项目中一个智能体回话并不会像豆包一样,每次新建会话都是是从头开始,而项目中你想创建新会话就像chatbox一样,是点击橡皮擦开启新的聊天上下文,但是直接的聊天记录依然存在,针对超过十万&#xf…

Python元组:不可变数据的强大用法

文章目录元组概念1.基本特性2.创建元组3.访问元素4.元组的不可变性5.元组操作6.元组解包7.命名元组8.元组与列表的比较9.元组的优势10.适用场景11.常用方法小结元组 概念 元组是 Python 中一个非常重要的内置数据结构,它与列表(list)相似但具有关键差异。下面我将…

若尔盖湿地的花湖

花湖位于若尔盖县和甘肃的郎木寺之间的213国道旁,属于若尔盖湿地国家级自然保护区内。又名“梅朵湖”,因阳光照射下湖面色彩斑斓如绚丽的花瓣得名。花湖的大门是梯形高大石柱搭成,我们需要过天桥到对面检票坐小交通。通过车窗看到一层一层的云…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DoubleClickHeart(双击爱心)

&#x1f4c5; 我们继续 50 个小项目挑战&#xff01;—— DoubleClickHeart组件 仓库地址&#xff1a;https://github.com/SunACong/50-vue-projects 项目预览地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 Composition API&#xff08;<script se…

1-绪论-1-数据结构的基本概念

&#x1f389; 数据结构的魔法世界&#x1f4da;&#x1f468;‍&#x1f393;“数据就像大海中的浪花&#xff0c;结构则是那神秘的洋流。掌握数据结构&#xff0c;就是掌握在信息海洋中自由航行的力量&#xff01;”引言&#xff1a;为什么要学数据结构&#xff1f;&#x1f…

linux网络相关命令简介

目录 一、IP命令 1、Link或L:管理网络接口(网卡) 2、Address或Addr,A:管理Ip地址 3、Route或R:管理路由表

教育培训机构如何为课程视频添加防盗录的强水印?

在知识付费时代&#xff0c;教育培训机构的课程视频是核心资产&#xff0c;但盗录、非法传播等问题却让机构防不胜防。如何在不影响学员观看体验的前提下&#xff0c;为课程视频添加“强效防盗水印”&#xff0c;精准追踪泄露源头&#xff1f;本文将为您揭秘高安全性水印的添加…

python的形成性考核管理系统

前端开发框架:vue.js 数据库 mysql 版本不限 后端语言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 数据库工具&#xff1a;Navicat/SQLyog等都可以 摘要 随着…

A*算法详解

A*算法详解一、A*算法基础概念1.1 算法定位1.2 核心评估函数1.3 关键数据结构二、A*算法的核心步骤三、启发函数设计3.1 网格地图中的启发函数3.2 启发函数的选择原则三、Java代码实现四、启发函数的设计与优化4.1 启发函数的可采纳性4.2 启发函数的效率影响4.3 常见启发函数对…

.net winfrom 获取上传的Excel文件 单元格的背景色

需求&#xff1a;根据Excel某行标注了黄色高亮颜色&#xff0c;说明该行数据已被用户选中(Excel文件中并没有“已选中”这一列&#xff0c;纯粹用颜色表示)&#xff0c;导入数据到数据库时标注此行已选中直接上代码&#xff1a;//选择Excel文件private void btnBrowse_Click(ob…

OpenAI GPT-4o技术详解:全能多模态模型的架构革新与生态影响

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; ⚙️ 一、核心定义与发布背景 官方定位 GPT-4o&#xff08;“o”代表“…

⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现

引子 在前面的文章中&#xff0c;我们基于 Netty 构建了一套单体架构的即时通讯服务。虽然单体架构在开发初期简单高效&#xff0c;但随着用户量的增长和业务规模的扩大&#xff0c;其局限性逐渐显现。当面对高并发场景时&#xff0c;单体 Netty 服务很容易触及性能天花板&…

原来时间序列挖掘这么简单

先搞懂&#xff1a;啥是时间序列&#xff1f;简单说&#xff0c;时间序列就是按时间顺序记下来的数据。比如&#xff1a;你每天早上 8 点测的体重&#xff0c;连起来就是 “体重时间序列”&#xff1b;超市每天的销售额&#xff0c;连起来就是 “销售时间序列”&#xff1b;城市…

基于Python的豆瓣图书数据分析与可视化系统【自动采集、海量数据集、多维度分析、机器学习】

文章目录有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍每文一语有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 豆瓣图书数据智能分析系统是一个集数据采集、清洗、分析与可视化于一体的综合性项…

2.3 数组与字符串

学习目标&#xff1a; 理解数组和字符串的概念&#xff08;存储多个数据的“盒子”&#xff09;。掌握数组的声明、初始化和遍历方法。能用字符串处理简单文本问题&#xff08;如字符计数、回文判断&#xff09;。1 一维数组 基本概念 比喻&#xff1a; 数组就像“储物柜”&…

C# 网口demo

bool _testStatus false; private void btnOpsStart_Click(object sender, EventArgs e) {int delay Convert.ToInt32(txtdelay.Text.Trim());txtView.Clear();txtView.AppendText("******************************************开始烤机*******************************…