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

关于销售网站有哪些内容asp企业网站开发技术

关于销售网站有哪些内容,asp企业网站开发技术,小型广告公司都干什么,网络推广的优势将光源视角的深度贴图应用于摄像机视角的渲染是阴影映射#xff08;Shadow Mapping#xff09;技术的核心步骤之一。这个过程涉及到将摄像机视角下的片段坐标转换到光源视角下#xff0c;并使用深度贴图来判断这些片段是否处于阴影中。 1. 生成光源视角的深度贴图 首先Shadow Mapping技术的核心步骤之一。这个过程涉及到将摄像机视角下的片段坐标转换到光源视角下并使用深度贴图来判断这些片段是否处于阴影中。 1. 生成光源视角的深度贴图 首先我们需要从光源的视角渲染场景生成一个深度贴图。这个深度贴图记录了从光源到场景中每个可见点的距离即深度值。具体步骤如下 设置光源视角我们将摄像机位置设置为光源的位置并将摄像机的方向指向场景。这样我们可以从光源的视角渲染场景。 创建帧缓冲对象FBO为了存储深度信息我们需要创建一个帧缓冲对象Framebuffer Object, FBO并将一个深度纹理附加到该 FBO 上。 渲染深度贴图在这个视角下我们只渲染场景的深度信息而不是颜色信息。每个像素的深度值表示从光源到该像素对应场景点的距离。这些深度值被存储在一个纹理中这就是所谓的“深度贴图”或“阴影贴图”。 GLuint depthMapFBO; glGenFramebuffers(1, depthMapFBO); const GLuint SHADOW_WIDTH 1024, SHADOW_HEIGHT 1024; // 深度贴图的分辨率 GLuint depthMap; glGenTextures(1, depthMap); glBindTexture(GL_TEXTURE_2D, depthMap); glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, SHADOW_WIDTH, SHADOW_HEIGHT, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depthMap, 0); glDrawBuffer(GL_NONE); // 禁用颜色输出 glReadBuffer(GL_NONE); // 禁用颜色读取 glBindFramebuffer(GL_FRAMEBUFFER, 0); 2. 计算光源的视图和投影矩阵 为了将摄像机视角下的片段转换到光源视角下我们需要计算光源的视图矩阵和投影矩阵。这些矩阵用于将世界坐标转换为光源视角下的裁剪空间坐标。 视图矩阵使用 glm::lookAt 函数来计算光源的视图矩阵。这个函数需要三个参数光源的位置、目标点通常是场景的中心和上方向向量通常是 (0, 1, 0)。 投影矩阵根据光源的类型选择合适的投影矩阵。对于平行光如定向光通常使用正交投影矩阵glm::ortho对于点光源或聚光灯通常使用透视投影矩阵glm::perspective。 glm::mat4 lightView glm::lookAt(lightPos, glm::vec3(0.0f), glm::vec3(0.0, 1.0, 0.0)); glm::mat4 lightProjection glm::ortho(-10.0f, 10.0f, -10.0f, 10.0f, near_plane, far_plane); glm::mat4 lightSpaceMatrix lightProjection * lightView; 3. 将摄像机视角下的片段转换到光源视角下 在摄像机视角下渲染场景时我们需要将每个片段的坐标从摄像机视角转换到光源视角。具体步骤如下 将片段从屏幕空间转换到世界空间使用摄像机的逆投影矩阵和逆视图矩阵将片段从屏幕空间转换到世界空间。 将片段从世界空间转换到光源视角下的裁剪空间使用光源的视图矩阵和投影矩阵将世界空间中的坐标转换到光源视角下的裁剪空间。 将片段从裁剪空间转换到归一化设备坐标NDC通过透视除法即将 x, y, z 分量除以 w 分量将裁剪空间中的坐标转换为 NDC。 将 NDC 转换到纹理坐标系将 NDC 中的坐标从 [-1, 1] 映射到 [0, 1]以便可以在深度贴图中进行采样。   // 在片元着色器中 void main() {// 将片段位置从世界空间转换到光源视角下的裁剪空间vec4 fragPosLightSpace lightSpaceMatrix * vec4(WorldPos, 1.0);// 执行透视除法将裁剪空间坐标转换为 NDCvec3 projCoords fragPosLightSpace.xyz / fragPosLightSpace.w;// 将 NDC 坐标从 [-1, 1] 映射到 [0, 1]projCoords projCoords * 0.5 0.5;// 从深度贴图中采样深度值float closestDepth texture(shadowMap, projCoords.xy).r;float currentDepth projCoords.z;// 计算阴影因子float shadow currentDepth closestDepth ? 1.0 : 0.0;// 应用阴影因子到最终颜色FragColor mix(color, shadowColor, shadow); } 处理自阴影问题 当物体自身遮挡自己时可能会出现自阴影问题。为了避免这种情况可以在计算阴影时引入一个小偏移量Bias以防止物体表面的深度值与深度贴图中的深度值过于接近。偏移量的大小可以根据物体表面的法线方向和光源方向之间的夹角进行调整。 float bias max(0.05 * (1.0 - dot(normal, lightDir)), 0.005); float shadow currentDepth - bias closestDepth ? 1.0 : 0.0;
http://www.eeditor.cn/news/120016/

相关文章:

  • 免费网站模板大全网站建设能力
  • 秦皇岛做网站的公司百度浏览器广告怎么投放
  • 厦门专业网站设计微信公众平台网页
  • 建设企业学习网站pc网站建设的优势是什么
  • 注册公司去哪个网站做网站编辑的时候没保存怎么
  • 网站建设培训资料江门公司做网站
  • 企业网站维护建设ppt东莞外发加工货源网
  • 越南的网站建设传奇手游源码网
  • 伍佰亿营销型网站注册的空间网站吗
  • 长春网站开发招聘网站的策划做推广
  • 怎么做提卡密网站苏州做手机网站
  • 衡阳建网站技术支持 鼎维重庆网站建设专家
  • 微网站二级页面怎么做洛阳做网站公司汉狮价格
  • 个人博客网站建设业务网站设计 cdc
  • 龙岗做网站公司苏州网络营销网站建设平台
  • 北京网站优化服务有限公司织梦批量修改网站源代码
  • 智能建站系统怎么更换网站模板创新的企业网站开发
  • 请人做游戏的网站英文官网建设
  • 浙江省建设局网站wordpress双击图片放大
  • 临沂网站优化互联网营销师报名入口官网
  • 网站开发语言格式化标记语言公司网站建设项目目的
  • 零食网站色调搭配怎麽做怎样做网络推广渠道
  • 公司网站怎么优化深圳建设交易集团
  • aspit网站源码带手机版xx集团门户网站建设策划方案
  • 建设部网站查询造价师证件长垣县建站塔山双喜
  • 湛江住房和城乡建设部网站免费企业官网怎么做
  • 网站备案需要把网站做好吗建英文网站费用
  • 仿淘宝商城网站开源系统做网站模板和服务器是一样的吗
  • 昆网站在哪里html个人网页设计代码
  • 做网站网站怎么赚钱用php做商城网站的设计论文