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

公司做网站的费用怎么账务处理网络营销个人感悟小结

公司做网站的费用怎么账务处理,网络营销个人感悟小结,长寿网站制作,上海外贸博览会一、VSM 的核心思想 1.1 VSM 的核心思想 1.1.2 从深度到概率的转变 VSM 的核心创新在于将阴影判定从深度比较转换为概率估算。通过存储深度分布的统计信息(均值和方差),利用概率不等式动态计算阴影强度,从而支持软阴影并减少锯齿。 1.1.3 深度分布的统计表示 VSM 在阴…

一、VSM 的核心思想

1.1 VSM 的核心思想

1.1.2 从深度到概率的转变

VSM 的核心创新在于将阴影判定从深度比较转换为概率估算。通过存储深度分布的统计信息(均值和方差),利用概率不等式动态计算阴影强度,从而支持软阴影并减少锯齿。

1.1.3 深度分布的统计表示

VSM 在阴影贴图中存储两个通道:

  1. 一阶矩(均值)​ μ = 1 n ∑ i = 1 n d i \mu = \frac{1}{n} \sum_{i=1}^{n} d_i μ=n1i=1ndi
  2. 二阶矩(平方均值)​ μ 2 = 1 n ∑ i = 1 n d i 2 \mu_2 = \frac{1}{n} \sum_{i=1}^{n} d_i^2 μ2=n1i=1ndi2
    其中, d i d_i di 表示光源视角下某像素的深度值。

通过这两个值可计算方差 Var = μ 2 − μ 2 \text{Var} = \mu_2 - \mu^2 Var=μ2μ2

1.2 数学基础:切比雪夫不等式

1.2.1 概率不等式定义

切比雪夫不等式(Chebyshev’s Inequality)用于估算随机变量 d d d 超过某阈值 t t t 的概率:
P ( d ≥ t ) ≤ Var Var + ( t − μ ) 2 P(d \geq t) \leq \frac{\text{Var}}{\text{Var} + (t - \mu)^2} P(dt)Var+(tμ)2Var

1.2.2 阴影强度计算

在 VSM 中,当前片段到光源的深度为 t t t,阴影强度定义为该深度被遮挡的概率:
Shadow = P ( d ≤ t ) = 1 − P ( d ≥ t ) \text{Shadow} = P(d \leq t) = 1 - P(d \geq t) Shadow=P(dt)=1P(dt)
因此:
Shadow ≈ Var Var + ( t − μ ) 2 \text{Shadow} \approx \frac{\text{Var}}{\text{Var} + (t - \mu)^2} ShadowVar+(tμ)2Var

1.3 VSM 的优势与局限性

1.3.1 核心优势
  1. 软阴影支持:通过概率估算自动生成半影效果,无需手动模糊。
  2. 抗锯齿能力:方差计算平滑了深度跳变,减少边缘锯齿。
  3. 抗漏光优化:方差修正缓解了深度不连续导致的漏光问题。
  4. 高效性:相比 PCF 的多重采样,VSM 仅需一次纹理查询。
1.3.2 技术挑战
  1. 存储开销:需要双通道浮点纹理(例如 GL_RG32F)。
  2. 过度模糊:在深度分布复杂的区域(如树枝、栅栏),阴影可能过度模糊。
  3. 数值稳定性:方差计算需避免负数(通过钳制或插值修正)。

1.5 VSM 的适用场景

  1. 动态光源:适用于需要实时更新阴影贴图的场景。
  2. 柔和光照:室内灯光、自然光照等需要软阴影的环境。
  3. 中高性能硬件:依赖浮点纹理和双通道渲染能力。

二、实战示例

贴图下载见:【C++游戏引擎开发】第15篇:OpenGL中的纹理加载

2.1 核心代码

#version 460 core
out vec4 FragColor; // 最终输出颜色in VS_OUT {vec3 FragPos;    // 输入的世界坐标vec3 Normal;     // 输入的法线vec2 TexCoords;  // 输入的纹理坐标vec4 FragPosLightSpace; // 灯光空间坐标
} fs_in;uniform sampler2D diffuseTexture; // 漫反射纹理
uniform sampler2D shadowMap;      // 阴影贴图uniform vec3 lightPos;    // 光源位置
uniform vec3 viewPos;     // 摄像机位置// 阴影计算函数
float ShadowCalculation(vec4 fragPosLightSpace) {// 透视除法转换到NDC坐标vec3 projCoords = fragPosLightSpace.xyz / fragPosLightSpace.w;// 从[-1,1]转换到[0,1]范围projCoords = projCoords * 0.5 + 0.5;// 超出阴影贴图范围的区域不产生阴影if(projCoords.z > 1.0 || projCoords.z < 0.0)return 0.0;// 从阴影贴图读取深度矩(R通道存储深度,G通道存储深度平方)vec2 moments = texture(shadowMap, projCoords.xy).rg;float currentDepth = projCoords.z; // 当前片段深度// 计算方差(E(x²) - E(x)^2)float variance = moments.y - (moments.x * moments.x);variance = max(variance, 0.00002); // 防止方差为负// 计算深度差float d = currentDepth - moments.x;if(d < 0.0) // 当前深度小于平均深度,说明未被遮挡return 0.0;// 使用切比雪夫不等式计算阴影概率float p = (d * d) / (variance + d * d);return clamp(p, 0.0, 1.0); // 返回阴影强度
}void main() {           vec3 color = texture(diffuseTexture, fs_in.TexCoords).rgb; // 采样纹理颜色vec3 normal = normalize(fs_in.Normal); // 归一化法线// 漫反射计算vec3 lightDir = normalize(lightPos - fs_in.FragPos); // 光源方向float diff = max(dot(lightDir, normal), 0.0);       // 漫反射强度vec3 diffuse = diff * vec3(1.0);                     // 漫反射颜色// Blinn-Phong高光计算vec3 viewDir = normalize(viewPos - fs_in.FragPos);    // 视线方向vec3 halfwayDir = normalize(lightDir + viewDir);      // 半角向量float spec = pow(max(dot(normal, halfwayDir), 0.0), 64.0); // 高光强度// 阴影计算float shadow =<
http://www.dtcms.com/wzjs/180676.html

相关文章:

  • 有域名了 怎么做网站b站引流推广
  • 服饰网站建设我赢网提供的高水平网页设计师
  • 做网站的做app的优化网站关键词的技巧
  • 怎么做网站的搜索功能百度搜图匹配相似图片
  • 怎么给网站做后台广告信息发布平台
  • 网站排名怎么做的最新军事动态
  • 中职电子商务网站建设与维护考试题最佳搜索引擎磁力王
  • 如何添加网站关键词郑州网络营销策划
  • 沈阳网站关键词优化做的好吗seo页面内容优化
  • 做模特的网站百度爱采购推广平台
  • 旅游网站系统建设种子资源地址
  • 360网站卖东西怎么做的百度网站名称及网址
  • 有自己网站做淘宝客赚钱吗百度收录检测
  • 重庆建设教育培训管理系统网站广告优化师培训
  • 武汉做网站冰洁找到冰洁工作室我想做地推怎么找渠道
  • 和狗做的网站网络推广运营是做什么
  • 如何做自己的视频网站查找关键词的工具叫什么
  • 阿里巴巴网站建设的背景网络营销的基本内容有哪些
  • 做简历网站 39网站建设的好公司
  • 阿里云wordpress进不去简述seo和sem的区别与联系
  • 建设一个网站需要那些技术优化师和运营区别
  • 做cpa的网站源码seo优化排名工具
  • 建设网站后怎么发布全网营销系统是干什么的
  • 怎么用ps做网站首页背景图片搜索引擎推广有哪些
  • 用哪个网站做相册视频文件软文推广营销
  • 做网站 郑州公司哪家好网络营销好学吗
  • 网站开发怎么报价北京网站排名seo
  • 国外域名。国内网站互联网营销推广
  • 做网站图片自动切换app推广80元一单
  • 陕西疫情最新情况今天广州seo服务外包