当前位置: 首页 > news >正文

青岛php网站建设行业数据网站

青岛php网站建设,行业数据网站,网络推广培训机构哪个比较好,新农村建设的网站官方模版、、都不用了#xff0c;记得之前用gitextension 的时候也好像有这种问题#xff0c;也不知道怎么回事 用自己的就行了 网上说什么都没用#xff0c;还是要自己老实写#xff0c;配上截图工具截屏目录直接转文字过去#xff0c;其实字都不要打多少的 一张很深刻…官方模版、、都不用了记得之前用gitextension 的时候也好像有这种问题也不知道怎么回事 用自己的就行了 网上说什么都没用还是要自己老实写配上截图工具截屏目录直接转文字过去其实字都不要打多少的 一张很深刻的图、、、最后的gitignore优雅 Implementing a Dissolve Effect with Shaders and Particles in Three.js | Codrops Tutorial 27 - Billboarding and the Geometry Shader 多个 primitive 并行执行的时序对你不可见 geom(triangle v2g IN[3], inout TriangleStreamg2f triStream) “geo 提供了这种额外的分组处理方式是它唯一的作用吗” —— 是的。它正是用来把一组三角形这里是 3 个顶点构成的三角形变成 0 个、1 个或者更多三角形/四边形通过三角形条带。这正是 VS/FS 无法提供的 “几何生成” 能力。 如果完全不构建广告牌 geo shader 里面只执行这个 for (int j 0; j 3; j)                     {                         g2f o;                         o.pos UnityObjectToClipPos(IN[j].objPos);                         o.uv TRANSFORM_TEX(IN[j].uv, _MainTex);                         o.normal UnityObjectToWorldNormal(IN[j].normal);                         o.worldPos float4(mul(unity_ObjectToWorld, IN[j].objPos).xyz, -1);                         triStream.Append(o);                     } frag接受的是在顶点的属性被栅格化后变成一个一个内部的像素那这个像素里的属性值是谁的 不会是geo传入的三角形中的任意一个顶点的一套属性而是在一切顶点都已经插值完成之后属于像素的属性 是的 Fragment Shader 接收到的每个像素fragment输入值并不是某个顶点的直接属性而是通过 几何着色器或顶点着色器输出的那三个顶点在三角形内的插值结果。也就是说像素级的属性只在三角形内部才具有意义是 所有顶点贡献后的“混合值”。 像素属性是屏幕层面的光栅化的结果就是1920x1080这些每一个像素上的插值的后的一套属性 frag shader的目标是对应分辨率下的光栅化处理结果 所以frag shader是因为设备的不同而产生各自光栅化效果的像素个数的最终部分----完全yes 假设输出目标分辨率为 1920 × 1080逻辑像素或样本数那最多会生成约 1920 × 1080 个 fragment每个未被丢弃的采样点对应一个片段。这种情况下如果有 MSAA多样本反锯齿Fragment Shader 可能每个像素执行多次。 Fragment Shader执行次数与分辨率和采样数直接相关 fragment 数量 ≈ Resolution × samples float dissolve_value tex2Dlod(_DissolveTexture, float4(avgUV, 0, 0)).r; float t clamp(_Weight * 2 - dissolve_value, 0, 1); 与常见的 tex2D() 采样方式相比有几个 本质上的不同点 没有梯度信息 → 不能交由GPU自动选 mipmap 几何着色器 (GS) 和顶点着色器 (VS) 并不运行在屏幕空间采样网格上即它们不会获得像素级的梯度信息 (ddx() / ddy())也无法由硬件计算合理的 mipmap 级别。 tex2Dlod(sampler, float4(u, v, 0, LOD)) 是一个显式指定采样 mipmap 级别的函数。 VS 或 GS 中如果你必须采样纹理又没有梯度就 必须手动传入 LOD一般写 0 表示 base 级别全分辨率。 为什么在 Geometry Shader 中必须用 tex2Dlod()? 在你的 geom() 里你使用了 avgUV 而不是屏幕坐标。 Geometry Shader 不具备自动计算 mipmap 的能力也没有片元的梯度输入——因此正常的 tex2D() 调用本身是非法的。 当片元从三角形 rasterizer 阶段生成后它会由三角形顶点插值得出多个属性值uv、worldPos、normal 等。 然而GPU还需要「知道这个属性在屏幕上变化有多快」——这就是梯度输入partial derivatives可以决定纹理采样时该用哪一层 mipmap、是否切换各向异性过滤等。 这种衍生的差值不是顶点自带的而是在光栅阶段根据前后左右 fragment 自动计算出来的。 aclockworkberry.comGame Development Stack Exchange 如何在 Shader 里“访问”梯度 在 HLSL/CG 中你可以用这两个内建函数 float ddx(float v);   // 水平方向一像素变化率 float ddy(float v);   // 垂直方向一像素变化率 它们分别计算某个变量在 x 或 y 方向的差值比如 ddx(i.uv.x) 表示当前像素 uv.x 与右边像素的差值。  developer.download.nvidia.com 函数结果对一个 float2 或 float3 也可 element-wise 插值。 还可组合成 fwidth(v) abs(ddx(v)) abs(ddy(v))表示该值在屏幕上的“总变化率”。通常用于实现无别名阶跃渐变step gradient切割效果。  aclockworkberry.com 它是如何计算得来的GPU 结构揭秘 GPU 会把渲染目标的像素划分成 2×2 的像素块quad其中同一组的 4 个片元共享派发一起执行 Fragment Shader ddx(v) 就是用 quad 中右上角与左上角这两个 fragment 的 v 值差vertical 为底与顶来估算的 如果 Shader 被分支分流了如 if (...) ddx(...)某些 fragment 路径没跑时ddx 的值可能是未定义的误差或错误。 aclockworkberry.comGame Development Stack Exchange VS/GS 没有屏幕空间像素信息也无 quad 概念因此 GPU 无法估算一个变量的像素梯度值 如果你在 VS 或 GS 写 tex2D()编译器也会报错因为不知道该如何为 mipmap 选择级别 而 Fragment Shader 正好在 raster 之后因此自动拥有这些梯度输入。 An introduction to shader derivative functions | A Clockwork Berry float smooth smoothstep(edge0, edge1, fwidth(i.uv.x)); 当 warpUV扭曲、偏移、大范围扭曲时你可以用 ddx(i.uv) 的结果手动控制 tex2Dlod()确保 lod 选择稳定。 在后期纹理 warping、极坐标映射、屏幕空间算法如线框、网格显示、高宽比中梯度控制几乎是必需品。 “片元的梯度输入”指的是 Fragment Shader 中 ddx() / ddy() 等函数返回的 屏幕空间插值值变化率 —— GPU 在片元光栅化阶段组织片元为 2×2 像素块后自动计算的差值。它是 mipmap 选择、程序滤波、抗锯齿、扭曲贴图等效果的重要基础而顶部的 VS/GS 阶段是无法访问这一信息的。 dissolve 级联、流动法线、无缝抗锯齿边界、极坐标扭曲采样等都是与此相关的 float2 flowUV TRANSFORM_TEX(mul(unity_ObjectToWorld, avgPos).xz, _FlowMap); float4 flowVector remapFlowTexture(tex2Dlod(_FlowMap, float4(flowUV, 0, 0))); float3 pseudoRandomPos avgPos _Direction; pseudoRandomPos flowVector.xyz * _Exapnd; Flow Map 去给粒子添加“随风飘散”的局部偏移即使 mesh 面朝向或形状不规则也能让流散变形看起来自然又有层次感。 Flow Map 是一张二维向量贴图通常 R横向G纵向归一化到 [0,1] 区间 它不是噪声而是**精准描绘各片区域想让粒子“往哪个方向飘”**的矢量数据 (相当于每个像素保存了一个 velocity vector) 靠近某边缘的三角片 UV 所对应的 flowVector 值可能指向斜下方向而另一片可能向右上。这种方式比简单随机更具有真实感。 // remap 流向值范围从 [0,1] 转换成 [-1,1] float2 flow tex2D(_FlowMap, flowUV).xy * 2 - 1; float3 pseudoRandomPos avgPos _Direction flow * _Exapnd; #define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy name##_ST.zw) name 是你在 ShaderLab Properties 中声明的贴图名比如 _MainTex Unity 会自动生成一个名为 name##_ST 的 float4 uniform关于默认uv的属性 .xy 存储的是 UV 重复tiling .zw 存储的是 UV 偏移offset。 IN.uv.xy * _MainTex_ST.xy _MainTex_ST.zw 先缩放 (tiling)再偏移 (offset) UV。 direction4是控制大方向的一个属性 tex2Dlod(_DissolveTexture, float4(avgUV, 0, 0)).r; 确实是向 tex2Dlod() 传入了一个 4 维向量float4让你觉得“多余”但它其实是 API 设计决定的正确用法。 为什么 tex2Dlod() 必须传入 float4 而不是 float2 根据 HLSL 文档tex2Dlod(sampler2D s, float4 uv) 的签名明确要求第二个参数是一个完全的四维向量 uv.xy用于纹理的 UV 坐标 uv.z在 2D 纹理中通常被忽略可设为 0 uv.w用于指定 mipmap 级别LOD即你想手动控制采样的分辨率层级 Microsoft Learn 简而言之你传入 (u, v, z, lod)其中只有 u、v 和 lod 是有效维度剩下的 z 只填充占位。 float dissolve_value tex2Dlod(_DissolveTexture, float4(avgUV, 0, 0)).r; float t clamp(_Weight * 2 - dissolve_value, 0, 1); weight是0到1的限制范围懂了 clamp是加保险的重点是控制范围完全减和完全加的范围最终需要是0到1的范围 才能转换给图像逻辑使用 float3 right UNITY_MATRIX_IT_MV[0].xyz;  // 摄像机右侧方向 → X 轴 float3 up     UNITY_MATRIX_IT_MV[1].xyz;  // 摄像机上方向 → Y 轴 // 然后用 radius * right radius * up 构造四边形 → 所有 billboards 默认是朝向屏幕面。 ➡️ 结果是所有粒子都会面向屏幕且它们的「本地平面方向」一致所以花瓣都是同样的“扭蛋角度”缺乏随机性、美感或辨识度。 float3 right UNITY_MATRIX_IT_MV[0].xyz; float3 up UNITY_MATRIX_IT_MV[1].xyz; 这两个得到的坐标系是哪个为什么直接可以当right 和up 都不用归一化 UNITY_MATRIX_IT_MV 是 Model×View 矩阵 的 逆转置矩阵通常用于将法线从物体空间正确变换到摄像机视图空间 IT 版本用于转换法线 float3 right UNITY_MATRIX_IT_MV[0].xyz; float3 up UNITY_MATRIX_IT_MV[1].xyz; 正是取 该矩阵的第 0 行和第 1 行的 .xyz 分量而根据贴在 Gist 上的 Unity 社区经验这两行分别等效于 row[0].xyz → 摄像机空间的 Right右方向向量 row[1].xyz → 摄像机空间的 Up上方向向量 可以直接当做标准向量不用再 normalize归一化 理论上inverse-transpose 在仅含旋转 均匀缩放的 ModelView 上不会改变轴向长度正交特性。 如果你的 unity_ObjectToWorld 里没有非均匀缩放即没有不同方向 scale ≠ 1、或 shear那么使用这个习惯于转换法线的矩阵其行向量已经是长度接近 1 的正交基。 Bonus更自然花瓣姿态不强制朝屏幕 如果你想让花瓣朝向“世界垂直重力方向”而不是屏幕可用类似思路构建 float3 worldUp float3(0,1,0); float3 forward normalize(cross(avgNormal, worldUp));  // 花瓣法线与 Up 做 cross → 世界空间方向 float3 right normalize(cross(forward, avgNormal)); float3 up     cross(avgNormal, right);  // 使三轴正交// 然后同样用 roll angle 随机旋转 right/up绕 avgNormal这样花瓣保持自然“飘散倒地”的朝向平面法线为 avgNormal而每片依旧有随机翻转。 fixed4 col (1, 1, 1, _Opacity); 说这一行有错误可能就是你这里的值初始化了又不用所以就警告了 雪地路径 Shader Graph—Unity_哔哩哔哩_bilibili [Unity] 集群行为初探-鱼群_哔哩哔哩_bilibili 参考https://github.com/Shinao/Unity-GPU-Boids?tabreadme-ov-file Unity 鱼群School of Fish / Flocking 涵盖 Boids 算法、VFX Graph、Shader Graph 等实现路径 Cam Ayres 的“Shader Graph VFX Graph 制作鱼群”即 《Unity 6: Creating a School of Fish…》核心都依赖 Shader GraphVFX Graph。而这两者 只能在 Unity 的 SRP 管线也即 URP/HDRP下使用 https://www.youtube.com/watch?vvoegALuuO2I Shinao/Unity-GPU-Boids: GPU powered boids with multiple implementations How to achieve boid/flocking effect (e.g. fish school) in VFX Graph without Compute Shader? - #2 by OrsonFavrel - Unity Engine - Unity Discussions https://github.com/Streamweaver/FishFlocker?utm_sourcechatgpt.com “Colorful FX” 是一个 很久之前的 Unity 插件主要用于后处理调色和色彩校正让 Unity 场景具有类似 Photoshop 效果的视觉表现。 提供一系列高质量、可自定义的 后期处理效果包括 PCC、色调转换、LUT、色彩提炼、动效预设、模糊、饱和度调整等—类似游戏版 Photoshop 调色工具。 ❓为什么现在较少使用 随着 Unity Post-processing Stack 和 URP/HDRP 的普及Unity 官方已经提供更加现代、集成度高的调色与后期处理解决方案 很多效果如 Bloom、Tone mapping、Color grading、Vignette 等都内置支持无需额外插件 Colorful FX 自 2012 年发布以来几乎不再更新目前兼容性有限尤其对 URP/HDRP 支持不佳。 “Colorful FX 是 Unity 早期为 Built-in 管线提供的高效调色与后处理特效插件但现在更多被 Unity 官方后期管线所替代。” https://www.bilibili.com/video/BV1DG4y1n7md/?vd_source8edbc527019213f5a0f28f3a4b395636 Git 并不跟踪“文件的差异”而是将每次 commit 时项目里的所有文件生成一次 全量快照snapshot只保存改变过的内容。对于未变化的文件它会用引用链接已有存储以节省空间 Checkout...回到某个老版本看看当时的代码 Revert...创建一个“反向的提交”来撤销它的改动 「我刚删了不要的脚本现在 checkout 到后一个节点当前这个节点就会消失吗」 答案 ❌ 不会“消失”但会暂时 “看不见” 你当前这个节点删除了不要的脚本是一个 提交记录commit它永远保留在 Git 历史里只要有分支指向它或者你回去引用它它就不会被 Git 清理。 但⚠️如果你 checkout 到后面节点而这个节点 没有分支指向它如 HEAD 脱离状态下新提交的它就会成为孤儿 commit之后 Git 有可能自动清理它GC。 detached HEAD 是你离开了“正常历史线”回头看了一眼旧日时刻 但如果你不小心写了新东西没保存分支那些改动就可能随风而去。 ref 手把手教你用git管理unity游戏项目让你少掉5根头发_哔哩哔哩_bilibili Git 是开源的用在本地不依赖网络 github 是云端可以管控本地的git前提是本地的git存在了 xxxx 假设你有一个 Unity 项目并且想要 Git 管理它其中包含 Assets/、ProjectSettings/ 等文件 用 Git 在项目根目录运行 git init本地初始化 Git 仓库 编辑 .gitignore 忽略 Library/, Temp/ 等缓存文件 用 git add Assets ProjectSettings第一次提交 修改脚本或场景后用 git commit 生成更新快照 随时通过 git checkout 或 git revert 回退历史版本。 xxxx  “Git GUI” 是 Git 软件自带目录下 右键 更多属性里调出 然后是里面具体的管理-----可以在GUI里做不用因为gui里ignore都不能写功能太少 创建.git文件夹在unity总文件夹里之后这个项目打开脚本时VScode自动就变了 VS Code 的 Git 功能默认在打开文件夹是自动检测最近的 .git 仓库 实际上这些就是 VS Code 调用了底层 git status 命令自动显示每个文件状态以简化你的版本控制流程无需手动运行命令行。 .gitignore可以去掉repository里不要管的文件夹 xxx 这里直接在vscode里面git完全管理 直接点分支create repository自动对unity项目根目录下创建git文件夹 Commit 或 Commit Staged 都需要先 StageCommit All 则直接提交所有修改 暂存Staging让你可以add挑出更改--提交 只有进行了 commit提交之后Git 才会记录那些改动并且之后才会在 UI 或 git status 输出中显示那些「改变了的文件」 半天下来git可能损坏文件但是是最好的要注意绑定的关系变化就是模型被绑定了就不要删了 https://docs.unity3d.com/Packages/com.unity.visualscripting%401.9/manual/vs-version-control.html 答辩官方文档差评虽然估计是自己哪里没注意到 右键菜单中的 “Reset current branch to this Commit...” 操作 Unity 粒子系统Particle System的底层原理和构成模块可以从三个核心阶段拆解发射 → 模拟更新 → 渲染。 Particle System模拟 / 更新阶段Simulation 每帧基于时间间隔更新每个粒子状态 位置更新由速度控制结合重力、风力、外力模块Force over Lifetime、噪声模块等 生命周期递减剩余寿命寿命结束则销毁 属性变化大小、颜色、旋转、透明度可随生命周期插值变化Size over Lifetime、Color over Lifetime 工作流程为模拟 → lifetime 判断 → 属性插值 → 位置更新。 粒子最终以 2D 点精灵 (Point Sprites) 或 billboard 四边形形式渲染每个粒子朝向摄像机 可以通过材质、纹理、混合模式等控制效果 可进一步定制为使用 Mesh 或 GPU 渲染或 Visual Effect Graph 模块支持百万级粒子。 Unity 粒子 特有模块和高级功能 子发射器Sub-Emitter某些粒子出生、死亡或碰撞时触发再次发射子粒子 碰撞模块Collision支持粒子与场景 collider 或刚体交互无需写代码 脚本 API可通过粒子系统脚本接口控制粒子生命周期事件、自定义行为 Visual Effect GraphVFX Graph基于 GPU 的可视化图形编辑工具支持大规模 GPU 粒子渲染。 Shader Graph 如何接入 VFX Graph 首先你需要在 Shader Graph 的设置中启用 “Support VFX Graph”并指定正确的渲染管线HDRP/URP Unity Discussions9Unity Documentation9Unity9 然后在 VFX Graph 的输出 Context 中选择该 Shader Graph即可用自定义 Shader 来定义粒子着色 Unity Documentation2Unity Discussions2 这样你能完全控制粒子的视觉属性比如发光、变色、顶点动画如渐变形变、扭曲等都可由 Shader Graph 处理。 Unity 的 Visual Effect GraphVFX Graph 是 Unity 针对高性能 GPU 粒子效果设计的节点式可视化编辑系统 VFX Graph 完全在 GPU 上执行粒子发射、模拟与渲染流程利用 GPU 并行处理数百万甚至上亿粒子高性能、低 CPU 占用 VFX Graph 基于 GPU 渲染 时其核心技术是通过 Compute Shader 将粒子模拟与粒子渲染一并交由 GPU 控制然后根据 Shader Graph或 HLSL定义每个粒子的外观与行为。 VFX粒子模拟Update Loop 每帧由 GPU compute shader 更新粒子状态重点一般用GPU更新逻辑而这里使用GPU了位置由速度更新并应用引力、风力、噪声等模块。 生命周期结束的粒子自动销毁属性如颜色、透明度、大小随着时间变化插值控制 VFX渲染输出Rendering 支持多种渲染类型点精灵Point Sprites、Billboard 四边形、Mesh、线条Trail、条带Strip等。 可结合 Shader Graph 自定义像素与片段着色器实现纹理动画Flipbook、变形、混合模式、LOD、HDRP/URP 支持等渲染细节 VFX交互与事件控制 事件系统Events粒子在生命周期中可触发子发射器、发送事件到其他系统如触发摄像机震动、声音、碰撞反馈。 碰撞与环境交互支持深度缓冲、Signed Distance FieldsSDF作为碰撞输入使粒子与场景几何体互动Unity。 与 ECS / DOTS 集成VFX Graph 可与 DOTS 架构结合使用将实体系统 CPU 数据提供给 GPU 缓冲区实现模拟与渲染的协同运算Reddit。 性能与优化 使用 GPU 并行计算不会频繁切换 CPU↔GPU保持高帧率。 内置可见性剔除bounding volume culling、粒子 LOD、粒子遮挡透明度优化机制支持数万个实例高效渲染 知乎/论坛语录 经验引用 “Unity DOTS VFX Graph 超强… 每分钟发射百万颗子弹还能保持编辑器 120fps。” “通过在粒子上添加一个 custom BulletID将实体与粒子匹配再把碰撞列表传给 VFX Graph使粒子知道自己应该销毁。” 来自 Reddit 用户经验分享说明 VFX Graph 可接受 CPU→GPU 双向数据实时控制粒子行为Unity Documentation5Reddit580.lv5。 https://www.reddit.com/r/Unity3D/comments/y29exn/i_love_to_combine_vfx_graph_and_shader_graph_have/?utm_sourcechatgpt.com
http://www.pierceye.com/news/206384/

相关文章:

  • 视频拍摄及制作培训网站优化有什么用
  • 沈阳网站排名公司网站开发专业怎么样
  • 电影院网站建设方案网络维护是什么职业
  • 网站建设需要的公司wordpress考试主题
  • 企业网站管理系统多站多语言版电子书推送网站怎么做
  • 海洋公司做网站推广安阳网站如何做优化
  • 南昌网站开发公司哪家公司好网站建设接单
  • 宁波网站制作哪家强调用wordpress的文章编辑器
  • 在线制作手机网站公司网站建设厂家
  • 在线分析网站一个小外贸公司怎么开
  • 给自己的公司做网站怎么做好电脑手机一体网站
  • 精通网站建设 全能建站密码pdf电商网站设计理念
  • 百度推广建设网站是不是合发手机网站的必要性
  • 企业网站建设是什么实现的物质基础和技术支撑现货交易平台代理
  • 网站建设的描述长沙发布app
  • 好的设计作品网站代理网站建设
  • 做网站的软件m开头网站建设公司问候语
  • 做网站需要工商证吗app软件开发价格
  • 做足球原创短视频网站网站建设永远在路上
  • 做seo为什么要了解网站苏州做网站公司
  • 这几年做哪些网站能致富网站开发账务处理
  • 网站的版权信息做阿里巴巴网站卖货咋样
  • 找项目去哪个网站成都哪里有做网站的公司
  • 网站推广的方法及特点国外专门做童装的网站
  • 企业网站开发模型图wordpress 侧边导航
  • 济南网站系统优化网站建设属于什么专业
  • 114啦建站程序页面效果好的网站
  • 龙华网站建设-信科网络电子商务网站建设和技术现状
  • 网站备案有效期wordpress 评论图片
  • 搭建网站需要哪些步骤wordpress 主题使用