最近学习shader的一些总结
旨在总结最近学习shader过程中一些关键要素,强化下记忆,如果有错误也烦请指出。
1.Properties
可调节变量,用于定义从外部传入到内部的变量, 以及外部通过访问这些变量名, 可以获取这些变量的值
其中定义时指定的类型, 在后文中类型不一定相同(基本不相同)
大致如下
2D -- sampler2D
Color -- half4(fixed4,float4皆可)
Cube -- samlperCUBE
Vector -- half4(fixed4等)
2.Tags
SubShader 的 Tags 主要影响渲染的整体行为, 决定整个 SubShader 如何在渲染管线中工作
Pass 的 Tags 主要影响该 Pass 的细节,用来细化单个渲染阶段的行为
RenderType: 定义Shader的渲染类型, 用于控制该材质的渲染行为
1.Qpaque(不透明): 表示该材质是完全不透明的物体, 通常, 这些物体没有透明度, 渲染时不会涉及任何透明或混合的计算
2.Transparent(透明): 表示该材质是透明物体, 透明物体在渲染时通常会涉及到深度测试和混合, 通常用于玻璃, 水面, 某些特殊效果
3.Background(背景): 表示该材质用于场景的背景渲染, 例如天空盒, 通常他们的渲染顺序比较特殊,因为通常是在对底层绘制的
4.Overlay(叠加): 表示该材质应当在其他所有物体上面渲染, 通常用于HUD 或 其他叠加在场景上的效果
5.ShadowCaster(阴影投射器): 表示该材质会投射阴影; 这个类型的物体通常会被渲染用于阴影生成, 但是不会出现在最终的场景中(例如在阴影贴图中);这些物体通常不直接参与最终图像的绘制, 只在阴影计算中使用
6.Wireframe(线框): 表示该材质应当使用线框模式进行渲染;通常用于调试或者特殊设计, 因为他显示物体的边界结构
7.TreeOpaque(树不透明): 表示树木等植物类物体的渲染类型, 这些物体在渲染时会有特殊的处理, 如透明度或反向面渲染等
8.TreeTransparentCutout(树透明裁剪): 表示透明裁剪的树木材质; 这类材质常见于植被或者树木, 通常使用透明度测试或裁剪来实现树叶的效果
9.TreeTransparent(树透明): 表示树木等透明物体, 通常不涉及透明裁剪, 而是完全透明处理; 这类材质可能用于树木的透明区域, 如树叶的透明部分
Queue: 定义该SubSahder在渲染时应该排在什么位置;
1.Background 队列通常用于背景物体
2.Geometry 用于常规物体
3.Overlay 用于 UI 元素
LightMode: 定义Shader的光照模式, 控制如何计算应用光照
1.ForwardBase和ForwadAdd: 前向渲染中的基础 和 额外光照 计算
2.Deferred 和 DeferredReflections: 延迟渲染中的光照计算
3.ShadowCaster: 阴影投射
4.Always 和 Meta: 用于特殊渲染效果 和 场景元数据
5.DepthOnly: 深度计算, 用于阴影, 深度测试
3.Pragma
#pragma 用于指令的预处理命令, 它告诉编辑器如何处理某个特定的编译指令; 启用或禁用某些功能, 设置特定的渲染行为, 或者优化性能;
1.#pragma vertex
指定顶点着色器函数, 此指令后面需要紧接一个函数名, 表示该函数作为顶点着色器入口
2.#pragma fragment
指定片元着色器函数, 此指令后面需要紧接一个函数名, 表示该函数作为片元着色器的入口
3.#pragma multi_compile
编译多个不同的着色器变体; 允许在同一个 Shader 中定义多个条件编译的分支, 编译器会为每个条件组合生成一个着色器变体
4.#pragma multi_feature
与上一条类似, 但只会在编译时启用实际使用的变体, 而不会生成所有可能的组合; 这通常用于优化, 因为减少了不必要的着色器变体
5.#pragma target
指定目标渲染平台的 Shader 模型; 它决定着色器将被编译为哪个版本的HLSL(#pragma target 3.0)
6.#pragma surface
指定表面着色器及其渲染属性; #pragma surface 会告诉Unity给定的表面着色器的计算规则和使用的光照模型(#pragma surface surf Lamber)
7.#pragma geometry
指定几何着色器函数, 用法与 vertex/fragment 类似
8.#pragma tessellatoin
指定曲面细分着色器函数, 用法与 vertex/fragment 类似
9.#pragma enable_d3d11_debug_symbols
启用Direct3D的调试符号, 通常用于调试和开发过程中
10.#pramga exclude_renderers
排除特定平台的渲染器(例如排除OpenGL和DirectX)
11.#pragma strict
开启严格模式, 在严格模式下, Shader 需要更明确的类型声明, 某些隐式类型转换将会引发编译器错误;
12.#pragma glsl
启用GLSL语言的兼容性; 如果编写一个需要在 OpenGL 平台运行的 Shader, 通常需要使用 GLSL 语法, 而不是 HLSL
4.Include
#include 指令用来引入外部的 .cginc 文件或其他编译单元(比如其他着色器代码文件); 这些文件通常包含了常用的函数, 宏, 预定义变量, 数据结构等, 可以在多个着色器中共享, 避免重复编写代码; Unity 提供了一些内置的 .cginc 文件, 这些文件包含了常用的渲染功能, 光照模型, 数学运算等;
1.UnityCG.cginc
包含了许多常用的函数, 宏和常量, 供顶点着色器和片元着色器使用
2.Lighting.cginc
包含光照计算相关的代码, 适用于在自定义着色器中实现不同的光照模型和阴影
3.UnityShaderVariables.cginc
包含一些全局的着色器变量和常量
4.UnityPBSLighting.cginc
用于物理基础渲染的着色器
5.AutoLight.cginc
自动计算光照的相关文件, 如点光源, 方向光源, 聚光灯的计算
5.结构定义
appdata 是 Unity 中顶点着色器输入的结构体, 它包含了顶点数据字段; 这些字段的定义会根据实际的渲染需求和顶点着色器的复杂性而变化; 可以根据需要自定义这些字段, 以便传递更多的顶点信息给顶点着色器处理
appdata
1.vertex: POSITION;
表示顶点的位置, 通常是局部空间中的位置(如物体坐标), 即float4(x, y, z, 1); 在渲染管线中, 它会被转换为世界空间, 视图空间或裁剪空间的坐标
2.normal:NORMAL;
表示顶点的法线, 通常表示该点的表面朝向, 用于光照计算
3.tangent:TANGENT
表示顶点的切线, 用于法线贴图和光照计算, 表示表面沿着纹理坐标方向的方向
4.color:COLOR
表示顶点的颜色, 通常用于顶点着色器的差值, 可以进行渐变和混合等效果
5.texcoord:TEXCOORD0
纹理坐标, 表示该顶点在纹理图像上的位置; 多个纹理坐标可以用于多重纹理映射
6.lightmap:TEXCOORD1
光照贴图坐标, 表示该顶点在光照贴图中的位置
7.worldPos:TEXCOORD2
顶点的世界坐标
v2f
v2f 是 Unity 中用于定义顶点着色器和片段着色器之间传递数据的结构体; v2f 是 Vertex-to-Fragment 的缩写, 即"顶点到片段"的意思; 它用来将定点着色器输出的计算结果传递到片元着色器进行后续处理; 也可以根据需求来自定义其中的字段
1.pos:POSITION;
裁剪空间坐标
2.worldPos:TEXCOORD0;
世界空间坐标
3.color:COLOR;
顶点颜色
4.texcoord:TEXCOORD1;
纹理坐标
5.normal:TEXCOORD2;
顶点法线
6.tangent:TEXCOORD3;
顶点切线
6.一些常见函数
UnityObjectToClipPos
将顶点坐标从对象空间转换到裁剪空间
UnityObjectToWorldNormal
将法线从对象空间转换到世界空间
mul
顶点位置转换到世界空间
tex2D
纹理采样函数
dot
点积函数, 通常用于计算光照和法线的关系, 如果光照方向与法线方向一致, 则值最大;
如果光照方向与法线方向成90°, 则值最小, 为0;
如果超过90°, 通常限制为0
length
求一个向量的长度(模)
后续再随着学习逐渐补充!
相关文章:
最近学习shader的一些总结
旨在总结最近学习shader过程中一些关键要素,强化下记忆,如果有错误也烦请指出。 1.Properties 可调节变量,用于定义从外部传入到内部的变量, 以及外部通过访问这些变量名, 可以获取这些变量的值 其中定义时指定的类型, 在后文中类型不一定相同(基本不…...
庐山派K230学习日记1 从点灯到吃灰
1 简介 庐山派以K230为主控芯片,支持三路摄像头同时输入,典型网络下的推理能力可达K210的13.7倍(算力约为6TOPS)。支持CanMV,可作为AI与边缘计算平台 K230简介 K230芯片集成了两颗RISC-V处理器核心,双核…...
在Swagger(现称为OpenAPI)中各类@api之间的区别
在Swagger(现称为OpenAPI)中,ApiOperation 是用来描述单个API操作的注解。除此之外,Swagger还提供了其他一些类似的注解,它们用于不同层次或目的来增强API文档的详细程度和可读性。以下是这些注解及其之间的区别&#…...
【网络协议】开放式最短路径优先协议OSPF详解(二)
前言 第一部分:【网络协议】开放式最短路径优先协议OSPF详解(一) 在第一部分中,我们了解了链路状态路由协议并讨论了 OSPF 的工作原理,同时学习了如何配置 OSPF。在本章的第二部分中,我们将进一步探讨 OS…...
windows文件夹自定义右键调用powershell完成7zip加密打包
准备powershell脚本 2. regedit的路径是:计算机\HKEY_CLASSES_ROOT\Directory\shell\,在此项目下新增子项目diy_command\command,command的数据值为powershell D:\windowsProjects\directory_diy.ps1 %1 效果,点击后进入和power…...
MySQL 入门教程
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 在本教程中,会让大家快速掌握MySQL的基本知识,并轻松使用MySQL数据库。 什么…...
BOOST 库在机器视觉中的应用及示例代码分析
一、引言 机器视觉是一门让计算机模拟人类视觉功能,对图像或视频数据进行理解、分析和决策的学科领域。在机器视觉的开发过程中,常常需要高效处理各种数据结构、进行数值计算、实现多线程并行处理以及运用优秀的算法框架等。BOOST 库作为一个功能强大、…...
第二十六天 自然语言处理(NLP)词嵌入(Word2Vec、GloVe)
自然语言处理(NLP)中的词嵌入(Word2Vec、GloVe)技术,是NLP领域的重要组成部分,它们为词汇提供了高维空间到低维向量的映射,使得语义相似的词汇在向量空间中的距离更近。以下是对这些技术的详细解…...
Log4j2 详解(异步日志打印及CSV格式日志输出)
Log4j2 详解 Apache Log4j2 是一个功能强大的 Java 日志记录框架,提供高性能和灵活的配置。本文档涵盖了 Log4j2 的核心功能及其详细使用方式,包括基础配置、异步日志、CSV 格式日志的输出以及使用注意事项。 一 Log4j2 基础概念与配置 1.1 Log4j2 介绍…...
[网络安全] DVWA之Content Security Policy (CSP) Bypass 攻击姿势及解题详析合集
CSP概念 CSP 是 Content Security Policy(内容安全策略)的缩写,是一种用于增强 Web 应用程序安全性的安全机制。它通过允许网站管理员控制页面中加载内容的来源来减少跨站脚本攻击(XSS)等常见的安全风险。 CSP 的工作…...
linux shell脚本 【分支结构case...in 、循环结构、函数】内附练习
1.思维导图 2.练习 1.定义一个find函数,查找ubuntu和root的gid 2.定义一个数组,写一个函数完成对数组的冒泡排序 bubble() {n${#arr[*]}for((i0;i<n-1;i));dofor((j0;j<n-1-i;j));doif ((arr[j]>arr[j1]));thentemp${arr[j]}arr[j]${arr[j1]}a…...
C# 设计模式(结构型模式):桥接模式
C# 设计模式(结构型模式):桥接模式 在软件设计中,我们经常会遇到系统的变化频繁,或者需要灵活扩展功能的场景。这时,桥接模式(Bridge Pattern)便显得尤为重要。桥接模式是一个结构型…...
RC充电电路仿真与分析
RC充电原理 下图是一个常见的RC充电电路:(假设R10K,C100nF) SW断开时,这个电路处于断路状态,C既没有充电也没有放电;SW闭合时,直流电源5V为电容C充电; 充电时电容两端…...
在 SQL 中获取第m个开始的n条记录方法汇总
在 SQL 中,要获取第m个开始的n条记录,主要取决于你使用的数据库系统和支持的功能。以要获取第10个开始的20条记录为例说明几种常见的方法: 1. 使用 LIMIT 和 OFFSET 适用于 MySQL、PostgreSQL 等支持 LIMIT 的数据库。 SELECT * FROM table…...
Linux 35.6 + JetPack v5.1.4之编译 pytorch
Linux 35.6 JetPack v5.1.4之编译 pytorch 1. 源由2. 折腾3. 构建步骤3.1 下载代码3.2 编译选项3.3 CUDA选项3.4 CUDA路径3.5 版本控制3.6 编译whl 4. 总结5. 参考资料 1. 源由 目前,有很多科研性质的自动导航的开源代码,例如: Linux 35.5…...
docker 部署nginx
1、拉取阿里的nginx镜像: docker pull crpi-k5k93ldwfc7o75ip.cn-hangzhou.personal.cr.aliyuncs.com/list_su/nginx:stable-perl 2、官方nginx镜像: docker pull nginx:stable-perl 3、创建挂载文件目录 mkdir nginx && cd nginx mkdir c…...
深入刨析数据结构之排序(上)
目录 1.内部排序 1.1概述 1.2插入排序 1.2.1其他插入排序 1.2.1.1 折半插入排序 1.2.1.2 2-路插入排序 1.3希尔排序 1.4快速排序 1.4.1起泡排序 1.4.2快速排序 1.4.2.1hoare版本 1.4.2.2挖坑版本 1.4.2.3前后指针版本 1.4.2.4优化版本 1.4.2.4.1小区间插入排序优…...
Java - 日志体系_Apache Commons Logging(JCL)日志接口库_桥接Logback 及 源码分析
文章目录 PreApache CommonsApache Commons ProperLogging (Apache Commons Logging ) JCL 集成logbackPOM依赖配置文件 logback.xml使用 源码分析jcl-over-slf4j 的工作原理1. LogFactory 的实现2. SLF4JLogFactory 和 Log 的实例化过程3. SLF4JLog 和 …...
力扣刷题:栈和队列OJ篇(下)
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 1.括号匹配问题(1)题目…...
QT:控件属性及常用控件(1)------核心控件及属性
一个图形化界面上的内容,不需要我们直接从零去实现 QT中已经提供了很多的内置控件: 按钮,文本框,单选按钮,复选按钮,下拉框等等。。。。。 文章目录 1.常用控件属性1.1 enabled1.2 geometry1.2.1 geometry…...
【juc】Lock锁和AQS的继承关系
目录 1. 说明2. Lock接口与AQS的关系2.1 Lock接口2.2 AQS(AbstractQueuedSynchronizer) 3. ReentrantLock与AQS的具体联系3.1 ReentrantLock的实现3.2 AQS在ReentrantLock中的作用 1. 说明 1.Lock锁和AQS(AbstractQueuedSynchronizer&#x…...
自学记录鸿蒙API 13:实现多目标识别Object Detection
起步:什么叫多目标识别? 无论是生活中的动物识别、智能相册中的场景分类,还是工业领域的检测任务,都能看到多目标识别的身影。这次,我决定通过学习HarmonyOS最新的Object Detection API(API 13)…...
BOC调制信号matlab性能仿真分析,对比功率谱,自相关性以及抗干扰性
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)…...
C# 事件机制
C# 事件机制详解:从概念到实践 在 C# 中,事件机制是处理对象间通信的重要方式,尤其是在 GUI 应用程序(如 WPF、WinForms)中,事件用于响应用户交互(如按钮点击、鼠标移动等)。本文将…...
使用 Python 实现随机中点位移法生成逼真的裂隙面
使用 Python 实现随机中点位移法生成逼真的裂隙面 一、随机中点位移法简介 1. 什么是随机中点位移法?2. 应用领域 二、 Python 代码实现 1. 导入必要的库2. 函数定义:随机中点位移法核心逻辑3. 设置随机数种子4. 初始化二维裂隙面5. 初始化网格的四个顶点…...
GPT分区 使用parted标准分区划分,以及相邻分区扩容
parted 是一个功能强大的命令行工具,用于创建和管理磁盘分区表和分区。它支持多种分区表类型,如 MBR(msdos)、GPT(GUID Partition Table)等,并且可以处理大容量磁盘。parted 提供了一个交互式界…...
【Triton-ONNX】如何使用 ONNX 模型服务与 Triton 通信执行推理任务上-Triton快速开始
模型部署系列文章 前置-docker 理解:【 0 基础 Docker 极速入门】镜像、容器、常用命令总结前置-http/gRPC 的理解: 【HTTP和gRPC的区别】协议类型/传输效率 /性能等对比【保姆级教程附代码】Pytorch (.pth) 到 TensorRT (.plan) 模型转化全流程【保姆级教程附代码(二)】Pytor…...
问题记录:[FATAL] [1735822984.951119148]: Group ‘manipulator‘ was not found.
前言:最近仿照UR5手眼标定的例程,在新的机械臂上进行手眼标定,还准备用easy_hand手眼标定包。将机器人功能包导入到工作空间后进行编译运行,启动launch文件: roslaunch easy_handeye eye_to_hand_CR7_calibration.lau…...
SpringCloudAlibaba实战入门之Sentinel服务降级和服务熔断(十五)
一、Sentinel概述 1、Sentinel是什么 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 一句话概括:sentinel即Hystrix的替代品,官网: https://sentinelguard.io/zh…...
Scrum中敏捷项目经理(Scrum Master)扮演什么角色?
敏捷开发模式已经逐渐被主流的软件研发团队所接受,其中Scrum是最具代表性的敏捷方法之一。Scrum框架中有三个核心角色:Product Owner(PO)、Scrum Master(SM)和Development Team(DT)。…...
SpringMVC(四)响应
目录 数据处理及跳转 1. 结果跳转方式 ①.ModelAndView ②.ServletAPI 1、通过HttpServletResponse进行输出 2、通过HttpServletResponse实现请求转发 3、通过HttpServletResponse实现重定向 ③.SpringMVC 1.直接输出 2.请求转发 3.重定向 2.ResponseBody响应json数…...
操作系统之文件系统
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
Android SPRD 工模测试修改
设备有两颗led灯,工模测试需全亮 vendor/sprd/proprietories-source/factorytest/testitem/led.cpp -13,6 13,10 typedef enum{#define LED_BLUE "/sys/class/leds/blue/brightness"#define LED_RED …...
C语言与操作系统
学习C语言有助于理解计算机底层原理和操作系统的工作方式 C语言自诞生以来,就与计算机底层操作紧密相连。作为一门高级编程语言,C语言提供了对硬件直接控制的能力,同时保留了结构化编程的特性,这使得它成为编写操作系统、编译器和…...
信息安全管理:网络安全
1 网络的定义和特征 1.1 网络的定义 (根本懒得说。。你们自己wiki吧) 网络的用处 What is a network…Devices in a network…LAN, WAN and InternetworksWhat do networks do for you… Sharing resourcesUse/share applications 1.2 网络的特征 Ch…...
python-leetcode-轮转数组
189. 轮转数组 - 力扣(LeetCode) class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""n len(nums)k % n # 如果 k 大于 n,…...
Windows上安装Go并配置环境变量(图文步骤)
前言 1. 本文主要讲解的是在windows上安装Go语言的环境和配置环境变量; Go语言版本:1.23.2 Windows版本:win11(win10通用) 下载Go环境 下载go环境:Go下载官网链接(https://golang.google.cn/dl/) 等待…...
【JS】期约的Promise.all()和 Promise.race()区别
概述 Promise.all() 和 Promise.race() 都是 JavaScript 中处理多个异步操作的 Promise 方法,但它们的行为和返回结果有所不同。 Promise.all()和Promise.race() 1. Promise.all() Promise.all() 接受一个由多个 Promise 实例组成的可迭代对象(例如数…...
【Linux】信号处理
一、Linux系统信号 1、常见的系统信号 常见的Linux系统信号 信号值描述1SIGHUP挂起(hang up)进程2SIGINT中断进(interrupt)程3SIGQUIT停止(stop)进程9SIGKILL无条件终止(terminate)…...
Diffusion Transformer(DiT)——将扩散过程中的U-Net换成ViT:近频繁用于视频生成与机器人动作预测(含清华PAD详解)
前言 本文最开始属于此文《视频生成Sora的全面解析:从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等》 但考虑到DiT除了广泛应用于视频生成领域中,在机器人动作预测也被运用的越来越多,加之DiT确实是一个比较大的创新,影响力大&…...
144:vue+leaflet 使用canvas绘制不同方向、不同颜色的模仿船只三角形
作者: 还是大剑师兰特 ,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。 查看本专栏目录 - 本文是第 144个示例 文章目录…...
c# 快捷键模块
文章目录 命名空间和类类成员静态成员 静态方法GenerateHotkeyIdWndProcGetWindowHandleAndSourceRegisterUnregister 静态方法(外部调用)RegisterHotKey 和 UnRegisterHotKey 委托HotKeyCallbackHandler 枚举HotkeyModifiers 应用示例 using System; us…...
npm install 安装选项 -d -s -g
在使用 npm install 时,-d、-g 和 -s 是不同的选项,它们分别代表不同的安装模式或行为。以下是它们的详细解释: 1. -d:--save-dev 含义:将包安装为开发依赖(devDependencies)。使用场景&#…...
【每日学点鸿蒙知识】worker线程数量、判断用户是否进行权限决定、图片上传类型错误、request锁释放时机、H5问题
1、HarmonyOS 怎么判断worker线程创建了几个? 因为有数量限制,所以想查询当前的worker数量,避免创建失败,还有,是同时运行的worker数量有限制,还是同一个应用能创建的worker线程有限制 1、查询当前的work…...
0xc0000020错误代码怎么处理,Windows11、10坏图像错误0xc0000020的修复办法
“0xc0000020”是一种 Windows 应用程序错误代码,通常表明某些文件缺失或损坏。这可能是由于系统文件损坏、应用程序安装或卸载问题、恶意软件感染、有问题的 Windows 更新等原因导致的。 比如,当运行软件时,可能会出现类似“C:\xx\xxx.dll …...
智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之7 附件(文档)
为AI聊天工具添加一个知识系统 Part1 人性化&去中心化 前情提要 这一次我们暂时抛开前面对“智能工厂的软件设计”的考虑--其软件智能 产品就是 应用程序。直接将这些思维方式和方法论 运用在其具体应用场景中。本文是其中的一个应用场景。 今天用了 一个新的AI助手工具…...
智能化人才招聘系统是怎样的?
随着企业规模的扩大和业务范围的拓展,人才招聘成为了企业发展的关键环节。然而,市面上的人才招聘系统琳琅满目,质量参差不齐,许多企业发现,并非所有系统都能满足他们的需求,特别是智能化的需求。今天&#…...
memcached的基本使用
memcached是一种基于键值对的内存数据库,一般应用于缓存数据,提高数据访问速度,减轻后端数据库压力。 安装 这里以Ubuntu为例,其他系统安装方法请看官方文档。 sudo apt-get update sudo apt-get install memcached启动 memca…...
【Unity3d】C#浮点数丢失精度问题
一、float、double浮点数丢失精度问题 Unity3D研究院之被坑了的浮点数的精度(一百零三) | 雨松MOMO程序研究院 https://segmentfault.com/a/1190000041768195?sortnewest 浮点数丢失精度问题是由于大部分浮点数在IEEE754规范下就是无法准确以二进制…...
机器学习中回归预测模型中常用四个评价指标MBE、MAE、RMSE、R2解释
在机器学习中,评估模型性能时常用的四个指标包括平均绝对误差(Mean Absolute Error, MAE)、均方误差(Mean Squared Error, MSE)、均方根误差(Root Mean Squared Error, RMSE)和决定系数…...