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

GAMES202-高质量实时渲染(Real-Time Shadows)

目录

  • Shadow Mapping
    • shadowMapping的问题
    • shadow mapping背后的数学
    • PCF(Percentage Closer Filtering)
    • PCSS(Percentage closer soft shadows)
    • VSSM(Variance Soft Shadow Mapping)
      • 优化步骤3
      • 优化步骤1
      • SAT(Summed Area Tables)
      • VSSM的问题
    • Moment Shadow Mapping
    • Distance Field Soft Shadows

GitHub主页:https://github.com/sdpyy1
作业实现:https://github.com/sdpyy1/CppLearn/tree/main/games202

Shadow Mapping

这块东西在我OpenGL学习笔记中有详细介绍

https://blog.csdn.net/lzh804121985/article/details/147256140?spm=1001.2014.3001.5502

shadowMapping的问题

阴影痤疮(Shadow Acne)、或者叫自阴影
在这里插入图片描述
出现该问题的原因可以看下图,光源视角下的一个像素内高度认为是同一个,下一个像素的位置,会被认为比前一个Z值更远,所以平坦的地板会交替出现高低不平的地方,这样就会出现阴影
在这里插入图片描述
简单解决就是认为z插值在一个范围内就不算在阴影中,虽然能解决这个问题,但是引入了新的问题,阴影发生了偏移。如果bias设置的过大,在靠近脚的地方,就不会出现阴影。在工业界称为“彼得潘效应"(Peter Panning)
在这里插入图片描述
对于这种不接触的阴影,解决方法是shadowmapping中不仅存最小深度的表面,还存储第二小深度的表面
在这里插入图片描述
另外阴影还有走样问题,毕竟阴影计算就是一个像素一个像素来做的
在这里插入图片描述

shadow mapping背后的数学

在实时渲染中,经常会用到一些不等式,但人们更多关注的是不等式相等时成立的条件,也就是说,不等式在什么条件下近似相等。实时渲染中,经常用到的一个约等如下:
在这里插入图片描述
满足下列两个条件之一时,实时渲染领域认为他们近似相等:
当g(x)满足:

  1. g(x)积分域足够小
  2. g(x)足够smooth,g(x)值变化不大,比较平坦

下面来到渲染方程
在这里插入图片描述
根据上边的不等式,就可以把最后一项(V)提出来
在这里插入图片描述
这样变换后,渲染方程就变成了正常做shading之后,再乘以一个表示可见不可见的项
这时的G(x)就是渲染方程的被积函数

PCF(Percentage Closer Filtering)

以点P为例,并不只找shadowmap中对应的一个像素,而是找一圈的像素,与这些像素都进行比较,最后将比较结果进行平均
在这里插入图片描述
比较结果就是一个全是1,0的矩阵,最终得到的数就不是非0即1的数了
在这里插入图片描述
在这里插入图片描述

PCSS(Percentage closer soft shadows)

PCF它原本是用来解决阴影的走样问题的,后来人们又发现它可以用来生成软阴影,就是PCSS
首先来回顾一下软阴影和硬阴影
在这里插入图片描述
到这里就可以理解软阴影在阴影不同位置有不同的软硬程度就可以通过PCF的滤波核的大小来控制,越大越模糊,越小越硬
在这里插入图片描述
w(半影)与光源大小、物体位置之间呈现相似三角形的关系,w就可以用来表示软硬程度。半影举例越大,滤波核尺寸就应该设计的更大,让阴影更软

总结PCSS的算法流程:1. 在一个范围搜索遮挡物,并计算平均深度。2. 用平均深度求出半影距离3. 在对应的滤波核尺寸下进行PCF
在这里插入图片描述
上边的步骤1需要选取一个合适的范围,下图就展示了如何选取一个范围来进行遮挡物搜素,假设了ShadowMap在近平面,用光源的大小来决定搜素范围
在这里插入图片描述在这里插入图片描述
在PCSS第一步和第三步中,为了计算一个像素点的着色,需要考虑多个纹素,从而导致速度慢。如果采用稀疏采样,又会有噪点产生
请添加图片描述

VSSM(Variance Soft Shadow Mapping)

针对PCSS效率问题,提出VSSM

优化步骤3

PCF和PCSS的 PC(percentage closer)的理解就是在深度纹理的一片区域内,有多少比例的纹素比着色点深度小
请添加图片描述
这就相当于看多少人比我考试分数高,就需要遍历所有同学的成绩
VSSM的解决方案就是用成绩分布(正态分布)来估计(⚠️VSSM并没有用正态分布,这里这样说只是方便理解,后边提到切比雪夫不等式就好理解了)
请添加图片描述
定义一个正态分布需要均值和方差,这个可以快速计算请添加图片描述
均值可以通过mipmap(因为上一级map到下一级map就是把相邻的正方形进行平均,到最后就整合为了一个平均值)、SAT(是一种用于高效计算矩形区域内元素总和的数据结构)来求,方差则是用一个概率论公式来求
请添加图片描述
得到正态分布分布后,求小于着色点深度的纹素百分比,其实就是阴影部分的线下面积
请添加图片描述
下来VASS还对这种计算进行了简化。直接使用不等式来近似
只要给定均值、方差、和要比较的位置t,就有下面的不等式成立 ,在渲染中就直接用方差、期望、t来估计红色部分的面积,然后马上就能得出剩余部分的面积(t必须大于中间线才好使)
请添加图片描述
至此,对PCSS步骤三的优化结束,在生成shadowMap时,为了计算方差,还需要额外生成一张平方shadowMap,总体来说甚至都不需要进行loop就可以知道一片区域有多少纹素深度小于着色点深度
请添加图片描述

优化步骤1

为了设置合理大小的过滤核,对一个区域内遮挡物的深度进行平均,需要遍历纹素,效率并不高

例如下图,如果着色点的深度为7,那么这些纹素的深度只有蓝色的是遮挡物,就需要平均他们,而红色不参与计算
请添加图片描述
对蓝色部分和红色部分求均值后,满足下式
请添加图片描述
这里求N1/N就可以直接用刚才步骤三的不等式(用方差、均值、t来估计大于t的比例),之后1减去它就是N2/N。

但我们还不知道红色部分的均值,在VSSM中直接假设红色部分均值就是t(大胆的假设,假设的依据是阴影位置大概率是个平面)
请添加图片描述
VSSM的效果请添加图片描述
另外课程还提到目前PCSS是压过VSSM的,因为人们对噪声的容忍度越来越高,在图像层面进行降噪手段变强了

SAT(Summed Area Tables)

SAT是给一片区域立刻得到它的均值的一种数据结构

SAT是对原数据的预处理得到的数据,在一维场景下,每个index记录都是前缀和(提前记录好),现在要求中间某一段的和,就直接拿出SAT在范围查询边界(左边是边界-1)的数据相减就行了
请添加图片描述
在二维情况下蓝色的范围查询,可以转化为左上角都是(0,0)的框加减操作
请添加图片描述

VSSM的问题

VSSM中作了很多假设,有一个就是假设一片区域纹素是符合正态分布的
例如右图深度只有3个峰值,不符合正态分布
请添加图片描述
下图就是说本来只有一小部分没遮住,但是假设为正态分布变成了很大一部分,就会让阴影边白
请添加图片描述
有一些地方变白了
请添加图片描述

Moment Shadow Mapping

为了解决VSSM分布描述不准确的问题,提出MSM,使用更高阶矩来描述分布
请添加图片描述
请添加图片描述
大概意思就是用数据的高阶来更好的拟合PCF的效果,下图表明用4阶矩下的分布就很好的达到了PCF的效果
请添加图片描述
缺点很明显空间很大
请添加图片描述

Distance Field Soft Shadows

请添加图片描述
首先看一下Distance functions是什么,它描述了空间中任意一点到物体表面的最小距离,离得越远值越小,表示到图上就是变白
请添加图片描述
在任何一个点上,以它记录的值为半径画圆,都不可能碰到物体,如果做光线追踪,那可以直接移动到圆的表面上去,这就是SFD的一个应用
请添加图片描述
下来用它来生成软阴影是它的另外一个阴影
用SDF可以大概描述多大的范围被物体挡住了,圆圈内为安全距离,不会有物体挡住,用这个圈的大小来定义visbility的大小,从而实现软阴影
请添加图片描述
在不同的位置找圆做切线,最小的切线就是需要的安全距离
请添加图片描述
求角度是一个acrsin的计算,比较慢,人们用一个替代来简化
请添加图片描述
其中根据不同的k值来达到不同的效果
请添加图片描述
显而易见的优缺点 空间换时间,但这是不考虑生成距离场的时间
请添加图片描述

相关文章:

GAMES202-高质量实时渲染(Real-Time Shadows)

目录 Shadow MappingshadowMapping的问题shadow mapping背后的数学PCF(Percentage Closer Filtering)PCSS(Percentage closer soft shadows)VSSM(Variance Soft Shadow Mapping)优化步骤3优化步骤1SAT&…...

vue+neo4j+flask 音乐知识图谱推荐系统

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! 编号: F027 架构: vueflaskneo4jmysql 亮点:协同过滤推荐算法知识图谱可视化 支持爬取音乐数据,数据超过3万条&…...

JavaScript 中 undefined 和 not defined 的区别

在 JavaScript 的调试过程中,你是否经常看到 undefined 却不知其来源?是否曾被 ReferenceError: xxx is not defined 的错误提示困扰?这两个看似相似的概念,实际上是 JavaScript 类型系统中最重要的分水岭。本文将带你拨开迷雾&am…...

设计一个新能源汽车控制系统开发框架,并提供一个符合ISO 26262标准的模块化设计方案。

今天,设计一个新能源汽车控制系统开发框架,并提供一个符合ISO 26262标准的模块化设计方案。以下为经过工业验证的技术方案: 一、系统架构设计 采用AUTOSAR Adaptive平台构建分布式系统,核心模块包括: 车辆控制单元(VC…...

基于STM32、HAL库的HX710A模数转换器ADC驱动程序设计

一、简介: HX710A是一款高精度24位模数转换器(ADC)芯片,专为电子秤和其他高精度测量应用设计。它通常与称重传感器(如应变片)配合使用,具有以下特点: 24位无失码精度 可编程增益:128或64 内置低噪声可编程放大器 片上稳压器,可直接为传感器供电 简单的数字接口(时钟+数据…...

python合并一个word段落中的run

在python-docx中,一个段落可以包含多个Run对象,每个Run对象可以具有不同的样式。如果你希望将一个段落中的所有Run对象合并为一个Run对象,同时保留所有文本内容,可以通过以下步骤实现: 合并Run对象的方法 遍历段落的…...

pytorch搭建并训练神经网络

#从小白开始学习人工智能# #学习笔记# 工具:pytorch 一、基础概念 1.神经网络是什么? 神经网络是人类受到生物神经细胞结构启发而研究出的算法体系。又称为人工神经网络(Artificial neural network) 最简版神经网络结构图&a…...

GCC 内建函数汇编展开详解

1. 引言 GNU 编译器集合(GCC)是广泛使用的开源编译器套件,支持多种编程语言,其中 C 语言编译器是其核心组件之一。在 C 语言编译过程中,GCC 不仅处理用户编写的标准 C 代码,还提供了一类特殊的函数——内建…...

iOS自定义电池电量显示控件 BatteryView 实现

iOS自定义电池视图:BatteryView 传送门:Android自定义电池电量显示控件 BatteryView 实现 在iOS开发中,自定义视图是提升用户体验的重要手段之一。本文将介绍如何通过Swift语言实现一个自定义的电池视图(BatteryView),并展示其功能和使用方法。 1. 功能概述 BatteryVi…...

LeetCode -- Flora -- edit 2025-04-27

1.接雨水 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,…...

00-算法打卡-目录

1 数组 01-算法打卡-数组-二分查找-leetcode(704)-第一天-CSDN博客 02-算法打卡-数组-二分查找-leetcode(35)-第二天-CSDN博客 03-算法打卡-数组-二分查找-leetcode(34)-第三天_leetcode 34-CSDN博客 04-算法打卡-数组-二分查找-leetcode(69)-第四天-CSDN博客 05-算法打卡-数组…...

Vue2 与 Vue3 深度对比与技术解析

引言 Vue.js 是由尤雨溪创立的渐进式(progressive)JavaScript框架,自 2014 年发布以来,以其简单易用和灵活扩展性得到广泛应用。在 Vue2 的时代,它已经成为构建单页应用(SPA)和组件化开发的主流…...

Linux-UDP套接字编程

一.认识IP地址 IP 协议有两个版本, IPv4 和 IPv6. 我们之后凡是提到 IP 协议, 没有特殊说明的,默认都是指 IPv4。 IP 地址是在 IP 协议中, 用来标识网络中不同主机的地址;对于 IPv4 来说, IP 地址是一个 4 字节, 32 位的整数;我们通常也使用 "点分十进制" 的字符串表…...

tsconfig.json和tsconfig.node.json和tsconfig.app.json有什么区别

通过pnpm i vite 生成vue3项目时,会生成三个ts配置文件,分别是什么作用呢? 在Vue 3项目中,tsconfig.json、tsconfig.node.json和tsconfig.app.json是三个不同的TypeScript配置文件,它们分别用于不同的场景和目的。其中tsconfig.n…...

机器学习——Seaborn练习题

1、使用tips数据集,创建一个展示不同时间段(午餐/晚餐)账单总额分布的箱线图 import seaborn as sns import matplotlib.pyplot as plt import numpy as np import pandas as pdplt.rcParams["font.sans-serif"] ["SimHei"] plt.rcParams[&qu…...

Spring XML 外部实体(XXE)指南:示例和预防

什么是XXE? XML 文档遵循特定的标准。该标准强调了 XML 文档的构造方式,概述了有效 XML 文档与无效 XML 文档的区别等等。 该标准还指定了一个称为“实体”的术语。实体是某些内容的占位符。 实体可以是内部的,也可以是外部的(就像我们的情况一样)。 实体通过系统标识…...

C语言(3)—分支和循环

文章目录 一、程序的基本结构二、分支结构1. if语句2. if-else语句 三、关系与逻辑运算符1. 关系运算符2. 逻辑运算符 四、条件运算符(三目运算符)五、switch语句六、循环结构1. while循环2. for循环 七、循环控制语句1. break2. continue 八、循环嵌套九…...

【MCP】从一个天气查询服务带你了解MCP

1. 前言 这篇文章将通过一个集成高德天气查询的 MCP Server 用例,带你上手开发自己的 MCP Server ,文章将通过以下三种方式(自己编写 Client 端代码,使用 mcp-cli 自带页面,集成到 Claude 桌面版等)带你测试自己的 MC…...

【Leetcode 每日一题】3392. 统计符合条件长度为 3 的子数组数目

问题背景 给你一个整数数组 n u m s nums nums,请你返回长度为 3 3 3 的 子数组,满足第一个数和第三个数的和恰好为第二个数的一半。 子数组 指的是一个数组中连续 非空 的元素序列。 数据约束 3 ≤ n u m s . l e n g t h ≤ 100 3 \le nums.length…...

SALOME源码分析:Geomtry模块

本文分析SALOME Geometry模块。 一、核心组件 1.1 GeometryGUI 二、关键流程 三、插件 3.1 插件接口 GEOMPluginGUI定义了Geometry可以加载的插件接口。 3.2 插件列表 插件命令描述 BasicGUI BlocksGUI BooleanGUI BuildGUI DisplayGUI EntityGUI GenerationGUI GEOM…...

力扣HOT100之链表:23. 合并 K 个升序链表

这道题我是用最淳朴最简单的思路去做的,用一个while循环持续地将当前遍历到的最小值加入到合并链表中,while循环中使用一个for循环遍历整个指针数组,将其中的最小值和对应下标记录下来,并将其值加入到合并链表中,同时对…...

ArkTS 组件 通用事件 通用属性 速查表

ArkTS 组件 组件 通用事件 速查表 通用事件事件名称简要说明点击事件onClick(event: Callback<ClickEvent>, distanceThreshold: number): T相较于原有 onClick 接口&#xff0c;新增 distanceThreshold 参数作为点击事件移动阈值&#xff0c;当手指的移动距离超出所设…...

SOAP API 和 REST API

SOAP API 和 REST API 是两种主流的 Web 服务通信架构&#xff0c;它们在设计理念、数据格式、协议支持和应用场景上有显著差异。以下是两者的核心对比及典型应用场景&#xff1a; 1. 核心概念与设计哲学 特性SOAP APIREST API本质协议&#xff08;基于 XML 的标准化协议&…...

简单了解Java的I/O流机制与文件读写操作

一、理解Java的I/O流机制 字节流 Java中的字节流主要由 InputStream 和 OutputStream 这两个抽象类及其子类构成。字节流以字节&#xff08;byte&#xff09;为基本处理单元&#xff0c;适用于处理所有类型的数据&#xff0c;包括文本、图片、音频、视频等。 1. InputStream…...

PCIe 转 U.2 接双硬盘指南 - 超微(Supermicro)主板

前言 公司服务器空间不够想扩容&#xff0c;尝试折腾了下超微&#xff08;Supermicro&#xff09;服务器的 PCIe 转 U.2&#xff0c;踩了一点小坑&#xff0c;特地写下来给大家参考一下。 现在市面上 U.2 接口的企业级固态硬盘相对其他类型接口的固态硬盘 便宜很多 &#xff…...

【上位机——MFC】文档

相关类 CDocument提供了一个用于管理数据的类&#xff0c;封装了关于数据的管理(数据提取、数据转换、数据存储等)&#xff0c;并和视图类进行数据交互。 文档类使用 定义一个自己的文档类&#xff0c;派生自CDocument 程序的创建过程 1.利用框架类对象地址pFrame调用Load…...

JavaEE-多线程实战02

接上 多线程编程实战01 第三个多线程程序 package thread.test;//定义了一个叫MyThread3的类&#xff0c;实现了Runable接口,所以它必须重写run()方法 class MyThread3 implements Runnable {Overridepublic void run() {//线程执行的具体内容//进入一个无限循环&#xff0c;…...

计算机网络 | 应用层(6) -- 套接字编程

&#x1f493;个人主页&#xff1a;mooridy &#x1f493;专栏地址&#xff1a;《计算机网络&#xff1a;自顶向下方法》 大纲式阅读笔记_mooridy的博客-CSDN博客 &#x1f493;本博客内容为《计算机网络&#xff1a;自顶向下方法》第二章应用层第七节知识梳理 关注我&#x1f…...

基于大模型的急性肠套叠全流程预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义与创新点 二、急性肠套叠概述 2.1 定义与分类 2.2 病因与发病机制 2.3 流行病学特征 三、大模型技术原理与应用现状 3.1 大模型基本原理 3.2 在医疗领域的应用案例 3.3 用于急性肠套叠预测的可行性分析 四、术前风险…...

游戏遭遇DDoS攻击如何快速止损?实战防御策略与应急响应指南

是不是很抽象 我自己画的 一、游戏DDoS攻击特征深度解析 游戏行业DDoS攻击呈现复合型特征&#xff0c;2023年监测数据显示&#xff0c;针对游戏服务器的攻击中&#xff0c;63%采用UDP反射放大HTTP慢速攻击组合&#xff0c;攻击峰值达3.2Tbps。攻击者利用游戏协议特性&#xff…...

Linux电源管理(2)_常规的电源管理的基本概念和软件架构

原文&#xff1a; Linux电源管理(2)_Generic PM之基本概念和软件架构 1. 前言 Linux系统中那些常规的电源管理手段&#xff0c;包括关机&#xff08;Power off&#xff09;、待机&#xff08;Standby or Hibernate&#xff09;、重启&#xff08;Reboot&#xff09;等。这些…...

回文链表力扣234

思路: 对于这个题同样的找出题目的要求 1.判断回文 那么我们思考一下判断回文的方法&#xff0c;对于字符串我们只需要翻转一下就行&#xff0c;但是这不是通用的方法&#xff0c;在思考一下&#xff0c;我们是不是可以用双指针&#xff0c;一个在前一个在后&#xff0c;向中…...

互联网的下一代脉搏:深入理解 QUIC 协议

互联网的下一代脉搏&#xff1a;深入理解 QUIC 协议 互联网是现代社会的基石&#xff0c;而数据在其中高效、安全地传输是其运转的关键。长期以来&#xff0c;传输层的 TCP&#xff08;传输控制协议&#xff09;一直是互联网的主力军。然而&#xff0c;随着互联网应用场景的日…...

榕壹云国际版短剧系统:基于Spring Boot+MySQL+UniApp的全球短剧创作平台

一、项目背景与简介 在短视频行业高速发展的今天,短剧内容已成为全球用户娱乐消费的新宠。为满足市场对高质量、多样化短剧的需求,我们基于Spring Boot + MySQL + UniApp技术栈开发了榕壹云国际版短剧系统,这是一款面向全球市场的短剧创作与分发平台。系统不仅提供丰富的基…...

为什么选择 Spring Boot? 它是如何简化单个微服务的创建、配置和部署的?

为什么选择 Spring Boot&#xff1f; Spring Boot 的核心目标就是简化 Spring 应用的初始搭建以及开发过程。它并不是要取代 Spring Framework&#xff0c;而是构建在其之上&#xff0c;通过一系列“约定优于配置”的原则和自动化手段&#xff0c;让开发者能够更快的创建出独立…...

方向倒数、梯度和梯度下降的对比关系

一、方向导数与梯度的定义 ‌方向导数‌ 方向导数描述多元函数在某点沿特定方向的变化率。对于函数f(x,y)&#xff0c;在点(x0​,y0​)沿单位向量u(u1​,u2​)的方向导数定义为&#xff1a; 其物理意义是函数值沿该方向的瞬时变化速率&#xff0c;正负表示增减趋势&#xff0c…...

全星APQP软件系统:驱动芯片半导体行业研发管理迈向高效与合规新高度

全星APQP软件系统&#xff1a;驱动芯片半导体行业研发管理迈向高效与合规新高度 在芯片半导体行业&#xff0c;一款芯片的研发周期长达数年&#xff0c;涉及设计验证、工艺开发、良率爬坡、量产交付等数百个关键节点&#xff0c;任何一个环节的偏差都可能导致数千万美元的损失…...

文章记单词 | 第50篇(六级)

一&#xff0c;单词释义 fun&#xff1a;英 [fʌn] 美 [fʌn]&#xff0c;名词&#xff0c;意为 “享乐&#xff1b;乐趣&#xff1b;快乐&#xff1b;嬉戏&#xff1b;有趣的事&#xff1b;玩笑&#xff1b;逗乐”&#xff1b;形容词&#xff0c;意为 “逗乐的&#xff1b;有…...

RISC-V MCU定时器架构与低功耗设计

RISC-V核低功耗MCU在定时器架构和功耗控制方面具有以下特点&#xff1a; 定时器配置 高级控制定时器&#xff1a;支持互补PWM输出和刹车功能&#xff0c;适合电机控制等场景 通用定时器&#xff1a;提供输入捕获、输出比较和单脉冲模式等基础功能 系统定时器&#xff1a;内置6…...

redis_Windows中安装redis

①Windows安装包下载地址&#xff1a;https://github.com/tporadowski/redis/releases 当前最新版本截图 ②根据自己系统平台的实际情况选择对应的安装包&#xff0c;如&#xff1a;64位win10系统可选择Redis-x64-5.0.14.msi ③下载完成后运行安装&#xff0c;没有特殊要求的话…...

Spring中生成Bean的方式总结-笔记

1. 概略版 Spring生成Bean方式有如下几种&#xff0c;可根据需求选择合适的方式&#xff0c;通常优先使用注解驱动的声明式配置&#xff08;如Component、Bean&#xff09;&#xff0c;复杂场景结合条件或作用域控制。 方式特点适用场景Component 组件扫描简单直观&#xff…...

学习insightface 的人脸识别

1.Insightface_pytorch版本的自定义数据准备过程 https://github.com/artintel/LearningCode/blob/master/insightface_pytorch_datasets_make/README.md https://github.com/artintel/LearningCode/tree/master/insightface_pytorch_datasets_make 2.mxnet_insightface开源…...

【MQ篇】RabbitMQ之消费失败重试!

目录 引言&#xff1a;消息不丢是底线&#xff0c;失败了优雅重试是修养&#xff01;消费失败了&#xff0c;为啥不能老是原地复活&#xff1f;&#x1f914;智能重试策略一&#xff1a;本地重试&#xff08;Spring Retry 的魔法&#xff09;&#x1f3e0;✨智能重试策略二&…...

权力结构下的人才价值重构:从 “工具论” 到 “存在论” 的转变​

引言​ 在现在的公司管理里&#xff0c;常常能听到这样一种说法&#xff1a;“我用你&#xff0c;你才是人才&#xff1b;不用你&#xff0c;你啥都不是。” 这其实反映了一种很常见的评判人才价值的标准&#xff0c;就是只看公司的需求&#xff0c;把人才当作实现公司目标的工…...

【上位机——MFC】视图

相关类 CView及其子类&#xff0c;父类为CWnd类&#xff0c;封装了关于视图窗口的各种操作&#xff0c;以及和文档类的数据交互。 视图窗口的使用 1.定义一个自己的视图类(CMyView)&#xff0c;派生自CView&#xff0c;并重写父类成员纯虚函数OnDraw。 2.其余框架类和应用程…...

Unity:Sprite Shapes(精灵形状)

游戏世界的基本构建单位——精灵&#xff08;Sprite&#xff09; Sprite&#xff08;精灵&#xff09;是什么&#xff1f; Sprite指的是一张小图片&#xff0c;在游戏里代表一个角色、道具、背景元素。 在2D游戏里&#xff0c;比如滑雪游戏&#xff0c;角色、小树、雪地……很…...

火语言RPA--钉钉群通知

【组件功能】&#xff1a;向钉钉群发送文本或markdown消息 在钉钉群创建自定义机器人&#xff08;Webhook&#xff09;&#xff0c;在组件配置Webhook地址、密钥、文本内容即可向钉钉群发送文本或markdown消息&#xff0c;还可以at群成员或所有人。 配置预览 配置说明 Webho…...

详细图解 Path-SAM2: Transfer SAM2 for digital pathology semantic segmentation

✨ 背景动机 数字病理中的语义分割&#xff08;semantic segmentation&#xff09;是非常关键的&#xff0c;比如肿瘤检测、组织分类等。SAM&#xff08;Segment Anything Model&#xff09;推动了通用分割的发展&#xff0c;但在病理图像上表现一般。 病理图像&#xff08;Pa…...

驯龙日记:用Pandas驾驭数据的野性

引言&#xff1a;为什么选择Pandas&#xff1f; "NumPy是手术刀&#xff0c;Pandas是急救箱" 手术刀&#xff08;NumPy&#xff09;&#xff1a;精密的数值计算 急救箱&#xff08;Pandas&#xff09;&#xff1a;处理现实数据的全套工具 维度NumPy数组Pandas Se…...

产品经理面经(1)

今天开一个新的栏目&#xff0c;是关于产品经理方面的。产品经理这个岗位每年的需求都是不少的&#xff0c;尤其是近年来AI的兴起造就了产品经理与AI方面深度融合从而催生了“AI产品经理”这种类型的岗位。具体数据如下 总体规模&#xff1a; 2020 年&#xff1a;受疫情影响&am…...