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

Unity Shaders and Effets Cookbook


目录

作者简介

审稿人简介

前言

我是偏偏

 Unity Shaders and Effets Cookbook

第一章:Diffuse Shading - 漫反射着色器

第二章:Using Textures for Effects - 着色器纹理特效的应用

第三章:Making Your Game Shine with Specular - 镜面反射让你的游戏闪光

第四章:Reflecting Your World - 反射

第五章:Lighting Models-光照模型


作者简介

        Kenny Lammers拥有超过13年游戏行业的工作经验。 曾就职于微软、Activision,最后任职的公司是Surreal Software。他目前管理着两家公司,Creative TD和Ozone Interactive。第一家Creative TD公司,主要给 IGT、微软、Janus Research 和Allegorithmic这些公司做Unity3D的咨询和资产的创建。Ozone Interactive是他第二家公司,与商业合作伙伴Noah Kaarbo共同经营。Ozone Interactive这家公司主要专注于Unity3D领域,专门从事交互式应用程序和高质量的设计。为亚马逊、E-line Media、微软和Sucker Punch游戏等公司提供服务。由于他有在游戏行业工作过的经验,让他有机会接触到使用ZBrush和Maya软件来创建角色。还编写了《实时着色器和后期处理特效》、使用c#在Unity3D中编过写完整的游戏。他目前正在开发几款游戏,为了加快游戏制作的进度还在Unity中开发了工具集。

作者的话

我要感谢的人太多了!单这个就完全可以占整整一章。首先要感谢的也是最重要的当然是我的妈妈。她总是告诉我朝着梦想努力,并总是在我身边支持我!我要感谢我的商业伙伴Noah Kaarbo,他在我写这本书的过程中一直支持着我,并称为了我的好朋友。我还要感谢一起共事过的所有人,但尤其重要的是,我要感谢那些一直鼓励着我的人,这些人督促我进一步提高了技能水平,并为我打开了行业的新世界。这些人是Ben Cammerano (MGS), Paul Amer (MGS),Fillipo Costanzo (5D Institute),Alessandro Tento (Lakshya),James Rogers (MGS),and Tony Garcia (Unity Technologies)。如果没有他们其中的任何一个,就不会有我今天的成就,我对他们致以最从高的致意。

我要感谢我所有的意大利游戏开发者朋友们,感谢他们为我们国家的游戏开发产业做出的贡献 

审稿人简介

Vincent Lim

Vincent Lim毕业于The One Academy,拥有数字动画和动画专业和游戏开发的文凭。毕业后,他立即加入了大蚂蚁工作室,被塑造成了游戏开发者。和他们相处了几年,Vincent学会了很多,从低多边形建模到平铺纹理再到地形雕刻,还有一点点的编程和MEL脚本。 他在大蚂蚁工作室非常积极,期间遇到的各种各样的任务。Vincent掌握了游戏引擎的知识、某些着色器的工作原理以及管线的工作流。为了提高效率,他得到了几次创建/重组某些管线的机会。他的MEL脚本技能是通过管线内的实际运用来培养的。 这使他可以做出艺术家可以使用的工具,在游戏中用来加快项目的进度并缩短从基础网格到3D模型的时间。凭借在Big Ant Studios的这些经验,Vincent通过学习新软件和阅读游戏力学以及游戏引擎,拓宽了自己的知识面。 这让他发现了Unity,并且他一直在Unity的领域中不断的保持着新的尝试。

Christian 'XeviaN' Meneghini

Christian 'XeviaN' Meneghini是一名年轻的老板,并热衷于Sinclair ZX Spectrum(它是由英国Sinclair公司于1982年生产的一款8位的键盘式个人电脑)。他开始使用基础的硬编码精和汇编语言来窥测游戏开发世界。  用基本语言和汇编语言的硬编码精灵窥探游戏开发世界。多年过去了,他使用了C64、辉煌的Amiga和所有PC家族处理器等伟大技术,使用了从Hercules和CGA的所有的视频卡,从第一个3D加速器到当前的3D加速器。 他沉迷于实时渲染和演示场景,同时专门从事图形编程和性能优化。 Christian 在业余时间也创作音乐。 多年来,Christian与朋友和同事们一起日以继夜的工作,研究技术书籍,编写引擎,并服务于第三方公司。2011年,Christian与朋友Marco Di Timoteo和 Luca Marchetti,一起创办了一家小型工作室,叫studio EVIL。 STUDIO EVIL的第一款产品是《Syder Arcade》,这是一款面向PC和Mac平台的老式复古射击游戏,带有真正的3D图形,随后游戏被移植到iOS、Android和OUYA平台。 

前言

        欢迎来到Unity着色器和效果食谱!这本书是你熟悉在Unity3D中创建着色器和后期效果的指南。您将在开始时开始您的旅程,创建最基本的着色器并学习着色器代码的结构。这一基础知识将武装你的手段进一步进入每一章,并产生着色器模拟人体皮肤,着色器处理动态反射,并将开发后期效果,如夜视。

        在每一章结束时,你将获得新的技能集,这将增加你的着色器的质量,甚至使你的着色器写作过程更有效。这些章节都是量身定制的,这样你就可以跳到每一部分,从初学者到专家学习一种特定的技能。或者,对于那些在Unity中编写Shader的新手来说,你可以通过每一章的进展,一次一个,以你的知识为基础。无论哪种方式,你都将学习到制作现代游戏的技巧。

        一旦你完成了这本书,你将有一组着色器,你可以在你的Unity3D游戏中使用,以及理解添加到它们,以完成新的效果和解决性能需求。让我们开始吧!


这本书的内容


        第1章,漫射阴影,通过解释如何在Unity3D中构建着色器来教授着色器写作的基础。然后将知识应用于创建默认漫射照明,并提供来自行业的提示和技巧来创建自定义漫射照明


        第2章,使用纹理效果,描述了如何利用纹理来创建不同的效果。您将学习如何通过着色器在精灵表上动画纹理,以及如何利用纹理的不同通道使着色器更有效。在本章结束时,你将有能力使用纹理来创建自己的自定义效果。

        第3章,让你的游戏闪耀与高光,教你一切你需要知道的关于创建最广泛使用的高光类型,Blinn和Phong。您将学习如何应用这些着色器效果来创建遮罩镜面,金属镜面,甚至将学习创建各向异性镜面的技术。在本章结束时,您将有足够的信心为自己的自定义着色器创建自己的自定义高光效果。


        第4章,反射你的世界,让你了解现代游戏中最流行的效果之一,那就是将反射技术结合到着色器中。本章将教你从Unity3D着色器反射的基础知识到使用c#建立自己的简单动态反射系统。


        第5章,光照模型,开始创建更复杂的着色器的过程。你会学习到如何创建自己的光照模型来实现自己的表面类型。每小节会展示不同的技术来完成不同的任务,都是为了提高你的着色器写作技能。到本章结束时,你可以创建自己的皮肤着色器,自己的 Lit Sphere 着色器和自己的车漆着色器。

        第6章“透明性”向你展示了在游戏制作的某些阶段,透明性成为一种必要的技术。几乎每款游戏都在某种程度上使用了透明度,比如GUI、树叶、贴花等等。在本章中,你将学习如何在Unity3D中使用透明度以及如何处理合并透明度时可能出现的问题。

        第7章,顶点魔术,介绍了如何访问存储在我们的3D网格的每个顶点的信息。您将学习如何获取这些信息,并在着色器中利用它来产生纹理混合和动画等效果。

        第8章,移动着色器调整,是关于如何利用Unity3D的内置标志和值来减少着色器的开销。这在处理移动平台上的着色器时变得尤为重要。

        第9章,用CgIncludes模块化你的着色器世界,向你展示了学习如何重用你写过的代码是必要的,一遍又一遍,为了使你的着色器编写更有效。本章向您展示如何创建自己的CgInclude文件来存储所有重复的代码以供重用。

        第10章,Unity渲染纹理的屏幕效果,首先看看任何现代游戏如何利用屏幕效果,有时被称为后期效果,改变游戏最终渲染图像的外观。您将学习如何创建自己的屏幕效果,并学习如何在游戏中添加颜色调整和纹理叠加以产生不同视觉效果的秘密。

        第11章,游戏玩法和屏幕效果,将你学到的屏幕效果的知识更进一步,并向你展示如何创建屏幕效果,提高游戏中的时刻。您将学习如何创建旧电影屏幕效果以及夜视屏幕效果。


我是偏偏

        还依稀记得多年前发现这本书时的喜悦,阅读过程中做了很多笔记、吧啦吧啦代码之类的。在天时地利机缘巧合的情况下可以有一些时间来整理整理这些笔记,然后写写文章。

        个人感觉这本书主要讲解的是美术效果做落地,而相对于偏纯理论方面的知识点不会讲解过多或过深,但书里也会附有说明,一般都会为我们提供相对应的网址链接,让我们自行去补充。这本书对于初学者来说是非常友好的。不仅有完整的代码,还可以让你看到完整的展示效果。以往敲Shader并不常使用Surface Shader,这本书也让我对Surface Shader有了更多的了解,内容比较通俗易懂,逐字逐句的阅读下来对自己的英语也有很大的帮助。

        未曾谋面的朋友们 —— 共勉!

 


 

 Unity Shaders and Effets Cookbook

《着色器和屏幕特效制作攻略》

I like this book!Reading, recording, and sharing...

 点击下方链接进入对应文章

第一章:Diffuse Shading - 漫反射着色器

  • 1.创建基础表面着色器
  • 2.为表面着色器添加属性  
  • 3.在表面着色器中使用材质属性
  • 4.创建自定义漫反射光照模型  
  • 5.创建半兰伯特照明模型 
  • 6.创建一个渐变纹理来控制漫反射着色 
  • 7.使用2D渐变纹理模拟BRDF

第二章:Using Textures for Effects - 着色器纹理特效的应用

  • 1.通过修改UV坐标实现纹理滚动效果
  • 2.精灵表动画
  • 3.封装混合纹理贴图
  • 4.法线贴图
  • 5.在Unity编辑器中创建程序纹理
  • 6.Photoshop色阶特效

第三章:Making Your Game Shine with Specular - 镜面反射让你的游戏闪光

  • 1.使用Unity3D内置的镜面反射
  • 2.创建 Phong 镜面反射
  • 3.创建 BlinnPhong 镜面反射
  • 4.使用高光贴图来实现镜面反射
  • 5.金属与软镜面反射的比较
  • 6.创建各向异性镜面反射

第四章:Reflecting Your World - 反射

  • 1.在 Unity3D 中创建立方体贴图 
  • 2.Unity3D 中实现立方体贴图反射
  • 3.Unity3D 中实现遮罩反射
  • 4.Unity3D 中实现法线贴图和反射
  • 5.Unity3D 中实现菲涅耳反射
  • 6.在 Unity3D 中创建动态立方体贴图系统

第五章:Lighting Models-光照模型

  • 1.Lit Sphere光照模型
  • 2.漫反射卷积光照模型 
  • 3.车漆光照模型 
  • 4.皮肤着色器 
  • 5.布料着色器

==

感谢这些年遇到的人,看过的书。

致敬作者们


 这本书可以让你学习到如何使用着色器和屏幕特效让你的Unity工程拥有震撼的渲染画面。

作者:Kenny Lammers


相关文章:

Unity Shaders and Effets Cookbook

目录 作者简介 审稿人简介 前言 我是偏偏 Unity Shaders and Effets Cookbook 第一章:Diffuse Shading - 漫反射着色器 第二章:Using Textures for Effects - 着色器纹理特效的应用 第三章:Making Your Game Shine with Specular - 镜…...

Markdown—LaTeX 数学公式

目录 一、字母1. 希腊大写字母2. 希腊小写字母3. 花体字母 二、上标和下标1. 上标2. 下标3. 其他 三、括号四、数学符号1. 基本数学符号1)运算符2)常见函数3)分式、根号、累加/乘4)极限5)积分 2. 三角函数与几何符号1&…...

AI 驱动的开发工具

🔧 主流 AI 前端开发工具 1. GitHub Copilot 由 GitHub 与 OpenAI 联合开发,集成在 Visual Studio Code、JetBrains 等主流 IDE 中,提供智能代码补全、函数生成等功能,极大地提高了开发效率。 (CSDN博客) 2. Cursor 一款 AI 驱…...

【入门】数字走向I

描述 输入整数N&#xff0c;输出相应方阵。 输入描述 一个整数N。&#xff08; 0 < n < 10 ) 输出描述 一个方阵&#xff0c;每个数字的场宽为3。 #include <bits/stdc.h> using namespace std; int main() {int n;cin>>n;for(int i1;i<n*n;i){cout…...

Kubernetes生产实战(十三):灰度发布与蓝绿发布实战指南

在微服务架构中&#xff0c;如何安全高效地发布新版本是每个团队必须掌握的技能。本文将深入讲解Kubernetes中两种主流发布策略的落地实践&#xff0c;附带生产环境真实案例。 一、金丝雀发布&#xff08;灰度发布&#xff09;&#xff1a;渐进式验证新版本 核心思想&#xf…...

数孪实战笔记(1)数字孪生的含义、应用及技术体系

一、含义 数字孪生&#xff08;Digital Twin&#xff09;是一种通过数字化模型在虚拟世界中实时映射和模拟物理实体、系统或过程的技术。它的核心目的是通过对现实对象的建模、感知、分析和预测&#xff0c;实现对物理世界的全面感知、智能控制和优化决策。数字孪生 实体对象 …...

深入浅出之STL源码分析5_类模版实例化与特化

在 C 中&#xff0c;​​类模板的实例化&#xff08;Instantiation&#xff09;和特化&#xff08;Specialization&#xff09;​​ 是模板编程的核心概念&#xff0c;而 ​​显式实例化&#xff08;Explicit Instantiation&#xff09;和隐式实例化&#xff08;Implicit Insta…...

JDBC演进之路:从基础操作到高效连接池

文章目录 一、JDBC 1.0&#xff1a;手动管理的起点1.1 核心特点1.2 代码示例&#xff1a;1.3 痛点分析 二、JDBC 2.0&#xff1a;配置化的升级2.1 核心改进2.2 代码示例2.3 优势与不足 三、JDBC 3.0&#xff1a;连接池的革命3.1 核心改进3.2 代码示例3.3 核心优势 四、版本对比…...

远程调试---在电脑上devtools调试运行在手机上的应用

1、启动项目–以vite项目为例:先ipconfig查看ip地址 ,然后在vite中配置host为ip地址 2、手机上查看项目:保证手机和电脑在同一局域网, 在手机浏览器打开我们vite启动的项目地址, 3、使用chii进行远程调试 (1) 安装 npm install chii -g (2)启动 chii start -p 8080 (3)在…...

街景主观感知全流程(自建数据集+两两对比程序+Trueskill计算评分代码+训练模型+大规模预测)27

目录 0、Emeditor软件1、Place Pluse 2.0数据集2、街景主观感知大框架2.1 街景主观感知&#xff1a;自建数据集2.2 街景主观感知&#xff1a;两两对比程序2.3 街景主观感知&#xff1a;Trueskill评分2.4 街景主观感知&#xff1a;训练模型&#xff0c;Resnet或EfficientNet或V…...

进阶二:基于HC-SR04和LCD1602的超声波测距

一、实验目的 掌握HC-SR04超声波测距模块的工作原理和使用方法。学会使用LCD1602液晶显示屏显示测量数据。熟悉89C51单片机与外设的接口电路设计和编程方法。二、实验原理 1. HC-SR04超声波测距模块原理 HC-SR04超声波测距模块可提供2cm - 400cm的非接触式距离感测功能,测距精…...

单因子实验 方差分析

本文是实验设计与分析&#xff08;第6版&#xff0c;Montgomery著傅珏生译)第3章单因子实验 方差分析python解决方案。本文尽量避免重复书中的理论&#xff0c;着于提供python解决方案&#xff0c;并与原书的运算结果进行对比。您可以从 下载实验设计与分析&#xff08;第6版&a…...

《Python星球日记》 第53天:卷积神经网络(CNN)入门

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、图像表示与通道概念1. 数字图像的本质2. RGB颜色模型3. 图像预处理 二、卷积…...

基于人工智能的个性化 MySQL 学习路径推荐研究

基于人工智能的个性化 MySQL 学习路径推荐研究 摘要: 随着信息技术的飞速发展,数据库在各行业应用广泛,MySQL 作为主流数据库之一,学习需求庞大。然而,不同学习者在知识水平、学习进度和目标上存在差异,传统统一的学习路径难以满足个性化需求。本研究通过运用人工智能技…...

阿里云OSS-服务端加签直传说明/示例(SpringBoot)

目录 概述 OSS文件上传方式 1. OSS控制台上传 2. 客户端直传 3. 后端上传 4. 加签直传 服务端加签方式 1. 服务端生成PostObject所需的签名和Post Policy 2.服务端生成STS临时访问凭证 3. 服务端生成PutObject所需的签名URL 实现1&#xff1a;生成PostObject所需的签…...

《向上生长》读书笔记day5

哎&#xff0c;好像有点坚持不下去了&#xff0c;有点松懈了 不咋想继续写读书笔记&#x1f602;&#xff0c;不过我不可能这么轻易放弃的&#xff0c;起码要做完这一本书&#xff0c;话不多说&#xff0c;开始进入的读书&#x1f4d2;笔记 今天读了两个章节&#xff0c;穷人翻…...

优选算法——队列+BFS

目录 1. N叉树的层序遍历 2. 二叉树的锯齿层序遍历 3. 二叉树最大宽度 4. 在每个树行中找最大值 1. N叉树的层序遍历 题目链接&#xff1a;429. N 叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目展示&#xff1a; 题目分析&#xff1a; 层序遍历即可~仅…...

Java MCP 实战 --> AI玩转贪吃蛇

MCP 实战 --> AI玩转贪吃蛇 MCP 更加便捷的扩展了 LLM 的能力&#xff0c;使得 AI 发展更加迅猛。本篇主要为了学习MCP的应用&#xff0c;实现了让AI去玩贪吃蛇&#xff0c;使用 Java 实现了 MCP Server 和 MCP Client 的编码。其他文章如下&#xff1a; thinking 基础版…...

Day20打卡-奇异值SVD分解

今天学习非特征筛选的方法&#xff1a; 知识点回顾&#xff1a; 线性代数概念回顾&#xff08;可不掌握&#xff09;奇异值推导&#xff08;可不掌握&#xff09;奇异值的应用 特征降维&#xff1a;对高维数据减小计算量、可视化数据重构&#xff1a;比如重构信号、重构图像&am…...

【RT-Thread Studio】nor flash配置Fal分区

前置条件&#xff1a;【RT-Thread Studio】W25Q128配置 添加 FAL软件包 配置SFUD驱动程序&#xff0c;使用FAL的设备为W25Q128 将fal_cfg.h和fal_flash_sfud_port.c提取出来&#xff0c;放到自己创建的fal_porting目录。 修改 fal_flash_sfud_port.c struct fal_flash_dev n…...

在资源受限设备上实现手势识别:基于包络EMG数据和实时测试的Tiny-ML方法

英文标题&#xff1a;Enabling Gesture on a Resource-Constrained Device: A Tiny-ML Approach with Envelope EMG Data and Real-Time Testing 中文标题&#xff1a;在资源受限设备上实现手势识别&#xff1a;基于包络EMG数据和实时测试的Tiny-ML方法 作者信息 Mohsin Ali S…...

动态规划:最长递增子序列

给定一个数组&#xff0c;求最长递增子序列的长度,就是要求我们求出一个序列中最长的上升子序列的长度&#xff0c;最长上升子序列的定义就是从原序列中按照孙旭去除一些数字&#xff0c;这些数字是逐渐增大的。 *定义dp[i]表示以第i个元素结尾的最长上升子序列的长度。 *初始…...

贪心算法专题(Part2)

目录 1. 最优除法 2. 加油站 3. 坏了的计算器 4. 可被三整除的最大和 5. 单调递增的数字 6. 合并区间 7. 无重叠区间 8. 用最少数量的箭引爆气球 1. 最优除法 题目链接&#xff1a;553. 最优除法 - 力扣&#xff08;LeetCode&#xff09; 题目展示&#xff1a; 题目分…...

4.9/Q1,GBD数据库最新文章解读

文章题目&#xff1a;The burden of diseases attributable to high body mass index in Asia from 1990 - 2019: results from the global burden of disease study 2019 DOI&#xff1a;10.1080/07853890.2025.2483977 中文标题&#xff1a;1990 年至 2019 年亚洲高体重指数导…...

API 网关核心功能解析:负载均衡、容灾、削峰降级原理与实战摘要

在微服务架构中&#xff0c;API 网关作为流量入口枢纽&#xff0c;通过负载均衡、容灾、削峰降级等核心功能保障系统稳定性与高可用性。本文结合 Spring Cloud Gateway 实战代码、原理剖析及行业最佳实践&#xff0c;深度解析网关核心能力&#xff0c;并对比当前前沿技术方案&a…...

Spring之AOP

什么是AOP AOP:Aspect 0riented Programming(面向切面编程、面向方面编程)&#xff0c;可简单理解为就是面向特定方法编程。 场景:案例中部分业务方法运行较慢&#xff0c;定位执行耗时较长的接口&#xff0c;此时需要统计每一个业务方法的 执行耗时。 优势: 1.减少重复代…...

TransmittableThreadLocal:穿透线程边界的上下文传递艺术

文章目录 前言一、如何线程上下文传递1.1 ThreadLocal单线程1.2 InheritableThreadLocal的继承困境1.3 TTL的时空折叠术 二、TTL核心设计解析2.1 时空快照机制2.2 装饰器模式2.3 采用自动清理机制 三、设计思想启示四、实践启示录结语 前言 在并发编程领域&#xff0c;线程上下…...

基于STM32的甲醛检测

一、制作目标 以正点原子的miniSTM32F103RCT6开发板为主控&#xff0c;使用甲醛传感器检测环境空气中的甲醛含量&#xff08;以mg/m^3为单位&#xff09;、C02含量&#xff08;以ppm为单位&#xff09;和总有机挥发物含量TVOC&#xff08;以mg/m^3为单位&#xff09;在OLED显示…...

人形机器人:主控芯片

目前人形机器人领域的主控芯片因厂商和应用场景不同而有所差异&#xff0c;以下是一些主要人形机器人及其可能使用的主控芯片概况&#xff0c;基于公开信息和行业趋势。由于具体型号常为商业机密&#xff0c;部分信息为推测&#xff1a; 主要人形机器人及其主控芯片 特斯拉&am…...

Web自动化测试入门详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、目的 web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”&#xff0c;通常都会作为广大测试从业者的首选学习对象&#xff0c;相较于C/S架…...

数据结构:树(树的定义和基本术语)

非空树&#xff1a;有且仅有一个根节点 空树&#xff1a;节点数为0的树 在非空树中根节点没有前驱&#xff0c;叶子结点&#xff08;终端结点&#xff09;没有后继&#xff0c;分支结点&#xff08;非终端结点&#xff09;前驱和后继都有&#xff0c;前驱有且仅有一个。 下图…...

用jsp简单实现C语言标准化测试系统

C语言标准化测试系统 在Web编程技术的学习过程中&#xff0c;我们小组为了深入理解相关技术原理&#xff0c;提升实践能力&#xff0c;开发了一个基于动态Web工程框架的C语言标准化考试系统。现在&#xff0c;就来和大家分享一下我们的项目经历。 一、实验目的剖析 这个项目…...

牛客周赛round91

C 若序列为1 4 5 7 9 1 2 3&#xff0c;1 9一定大于1 1或1 4...所以只需要记录当前数之前数字的最大值&#xff0c;然后遍历取max即可&#xff0c;所以对于上面的序列有效的比较为1 9&#xff0c;2 9&#xff0c;3 9取max 代码 //求大于当前数的最大值&#xff0c;然后…...

java-代理

1.什么是java代理模式&#xff1f; 给目标对象提供一个代理对象&#xff0c;并且由代理对象控制对目标对象的引用 我们可以这样理解 我们是用户&#xff0c;代理类是支付宝&#xff0c;我们想用支付宝的转账功能&#xff0c;但是支付宝本身没有转账功能&#xff0c; 又恰好…...

【数据结构与算法】图的基本概念与遍历

目录 一、图的基本概念 1.1 图的基本组成 1.2 图的分类 1.3 顶点的度数 1.4 路径与回路 1.5 子图与特殊图 二. 图的存储结构 2.1 邻接矩阵 2.2 邻接表 三、深度优先遍历 3.1 原理 3.2 实现步骤 3.3 代码实现 四、广度优先遍历 4.1 原理 4.2 实现步骤 4.3 代码…...

《AI大模型应知应会100篇》第54篇:国产大模型API对比与使用指南

第54篇&#xff1a;国产大模型API对比与使用指南 ——从百度文心到通义千问&#xff0c;一文看懂国内AI平台选型 &#x1f4cc; 摘要 随着中国人工智能产业的快速发展&#xff0c;越来越多的国产大模型平台开始崭露头角。本文将系统梳理当前主流国产大模型 API&#xff08;如…...

论文分享➲ arXiv2025 | TTRL: Test-Time Reinforcement Learning

TTRL: Test-Time Reinforcement Learning TTRL&#xff1a;测试时强化学习 https://github.com/PRIME-RL/TTRL &#x1f4d6;导读&#xff1a;本篇博客有&#x1f9a5;精读版、&#x1f407;速读版及&#x1f914;思考三部分&#xff1b;精读版是全文的翻译&#xff0c;篇幅较…...

LeetCode 热题 100 24. 两两交换链表中的节点

LeetCode 热题 100 | 24. 两两交换链表中的节点 大家好&#xff0c;今天我们来解决一道经典的链表问题——两两交换链表中的节点。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求两两交换链表中的相邻节点&#xff0c;并返回交换后链表的头节点。 问题描述 给你一个链…...

好用的播放器推荐

以下是一些好用的播放器推荐&#xff0c;按照不同平台和使用场景分类&#xff1a; 电脑端 VLC Media Player 特点&#xff1a;开源、跨平台&#xff0c;支持几乎所有的音视频格式&#xff0c;无需额外安装解码器。具备强大的功能&#xff0c;如播放列表管理、视频和音频滤镜、…...

C语言_函数hook方案

背景 单体测试中测试一个函数时,该函数调用的其他函数,需要按照测试case,依赖其他函数进行调用参数检查,返回特定值。但是其他函数,不容易做到参数检查和返回特定值,这时需要将其他函数进行hook,hook函数用户自己实现,比较容易实现参数检查和返回值特定值。 本文主要…...

翻转数位题目解释和代码

这段代码的功能是计算一个32位整数中&#xff0c;经过至多一次位翻转&#xff08;0变1或1变0&#xff09;后能得到的连续1的最大长度。例如&#xff0c;输入1775&#xff08;二进制11011101111&#xff09;&#xff0c;翻转中间的0后变为11011111111&#xff0c;连续1的最大长度…...

问题及解决01-面板无法随着窗口的放大而放大

在MATLAB的App Designer中&#xff0c;默认情况下&#xff0c;组件的位置是固定的&#xff0c;不会随着父容器的大小变化而改变。问题图如下图所示。 解决&#xff1a; 为了让Panel面板能够随着UIFigure父容器一起缩放&#xff0c;需要使用布局管理器&#xff0c;我利用 MATLA…...

C/C++复习--C语言中的函数详细

一、函数的基本概念 函数是C语言中封装代码的基本单元&#xff0c;类似于数学中的函数。 作用&#xff1a; 提高代码复用性模块化编程&#xff0c;增强可维护性隐藏实现细节 分类&#xff1a; 库函数&#xff1a;由C标准库提供&#xff08;如printf, strcpy&#xff09;自定…...

BufferAttribute

BufferAttribute 3D虚拟工厂在线体验 描述 BufferAttribute 是 Three.js 中用于高效管理几何体属性数据的核心类&#xff0c;其主要特点包括&#xff1a; 数据存储 专为存储 BufferGeometry 的各种属性设计&#xff0c;包括&#xff1a; 顶点位置&#xff08;position&#…...

FreeRTOS Semaphore信号量-笔记

FreeRTOS Semaphore信号量-笔记 **一、信号量与互斥量的核心区别****二、二值信号量&#xff08;Binary Semaphore&#xff09;****1. 功能与使用场景****2. 示例&#xff1a;ADC中断与任务同步** **三、计数信号量&#xff08;Counting Semaphore&#xff09;****1. 功能与使用…...

HTTP/2概览及内核解析

目录 1. HTTP/2特性概览 1.1. 兼容 HTTP/1 1.2. “语法”层面的改造 1.3. 协议栈 1.4. HTTP/2实验环境 1.5. Question&#xff1a; 2. HTTP/2内核剖析 2.1. 连接前言 2.2. 头部压缩 2.3. 二进制帧 2.4. 流与多路复用 2.5. 流状态转换 1. HTTP/2特性概览 HTTP 协议…...

AI生成视频推荐

以下是一些好用的 AI 生成视频工具&#xff1a; 国内工具 可灵 &#xff1a;支持文本生成视频、图片生成视频&#xff0c;适用于广告、电影剪辑和短视频制作&#xff0c;能在 30 秒内生成 6 秒的高清视频&#xff08;1440p&#xff09;&#xff0c;目前处于免费测试阶段。 即…...

每日一题洛谷T534125 合数c++

字符串输入&#xff0c;看所有位数加起来的数是不是3的倍数 是&#xff0c;直接输出&#xff0c;不是&#xff0c;删除1或2 特判全是1和全是2的情况 直接检测末尾数字可以特判2 特判1时&#xff0c;还要特判11和111&#xff0c;其他数字&#xff0c;k是奇数时是质数&#x…...

AI大模型学习十七、利用Dify搭建 AI 图片生成应用

一、说明 随着图像生成技术的兴起&#xff0c;涌现了许多优秀的图像生成产品&#xff0c;比如 Dall-e、Flux、Stable Diffusion 等。 本文将使用图像生成模型&#xff0c;学习使用 Dify 快速开发一个 AI 图片生成应用 二、获取Stablility API 密钥 1、注册 Stability AI - De…...

分布式锁原理

1.锁是什么 一个线程拿到锁&#xff0c;另一个线程就拿不到&#xff0c;满足互斥性。 2.Redis的setnx实现 加锁后解锁&#xff0c;但是要先判断是否是当前线程持有的锁&#xff0c;只能释放本线程的锁。 先判断后释放&#xff0c;两步操作Lua实现原子性 3.为什么要给锁加过期…...