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

洛阳市政建设网站公司网站建设重点内容

洛阳市政建设网站,公司网站建设重点内容,wordpress 结合qq,网站制作套餐你可能遇到过这样的地形#xff1a;悬崖陡峭的一侧的纹理拉伸得如此之大#xff0c;以至于看起来不切实际。 也许你有一个程序化生成的世界#xff0c;你无法对其进行 UV 展开和纹理处理。 推荐#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 三平面映射#xff08;Trip…你可能遇到过这样的地形悬崖陡峭的一侧的纹理拉伸得如此之大以至于看起来不切实际。 也许你有一个程序化生成的世界你无法对其进行 UV 展开和纹理处理。 推荐用 NSDT编辑器 快速搭建可编程3D场景 三平面映射Triplanar Mapping提供了一种优雅的技术来解决这些问题并为你提供来自任何角度或任何复杂形状的逼真纹理。 在本文中我们将了解该技术查看代码并了解使用三平面映射时的一些优点、缺点和其他可能性。 1、地形纹理化的UV问题 最常见的问题是纹理拉伸尤其是在地形方面。 问题在于正在纹理化的对象的 UV 坐标。 对于地形UV 坐标分布在网格中在 X-Y 平面上均匀分布如下所示 上图中的UV 布局未考虑地形的高度差并导致拉伸。 你可以采取措施通过仔细展开 UV 坐标来均匀陡峭多边形的区域但这会导致结果不太理想。 你仍然有扭曲的纹理并且一些图块例如中间的图块被压缩。 你也可能无法展开网格物体 UV 坐标可以通过程序生成地形或形状。 也许你的形状中有一个洞穴系统或洞。 我们可以使用三平面映射技术也称为“三平面纹理”来解决这些问题。 2、基于Triplanar映射的地形纹理化 首先让我们再次查看应用了三平面映射的地形 使用三平面映射的地形 现在好多了 拉伸消失了陡峭的斜坡看起来更加真实。 Triplanar映射通过在 3 个不同的方向X、Y 和 Z 轴上渲染纹理 3 次来实现此目的。 想象一个盒子。 首先纹理从正 X 轴向下投影到负 X 轴。 面向 X 轴方向的任何片段几何体的像素都会应用纹理。 Y轴和Z轴也进行同样的处理。 这些渲染混合在一起。 因此一半面向 X 轴、一半面向 Z 轴的片段将占用一半的 X 轴渲染和一半的 Z 轴渲染。 如果片段的 90% 面向 X 轴则它会接收 90% 的 X 轴渲染而仅接收 10% 的 Z 轴渲染。 就像拿3个喷雾罐从顶部、侧面、正面喷射。 从 3 个角度投射的纹理 所有这些都是在材质的片段着色器中完成的。 它本质上对几何体进行 3 次纹理处理每个方向一次然后混合结果。 Triplanar映射根本不使用 UV 坐标。 相反它使用实际的世界坐标。 知道了这一点我们来看看代码。 第一部分计算每个方向的混合因子 // in wNorm is the world-space normal of the fragment vec3 blending abs( wNorm ); blending normalize(max(blending, 0.00001)); // Force weights to sum to 1.0 float b (blending.x blending.y blending.z); blending / vec3(b, b, b);这里它采用片段的世界空间法线它将被标准化并且每个分量将在 -1 和 1 的范围内我们将其设为绝对值。 我们不关心法线是否面向 -X 或 X只要它位于 X 轴即可。 如果我们确实担心绝对方向我们就会从前、后、左、右、上、下绘制形状 比我们需要的多3倍。 接下来我们强制它在 0 到 1 的范围内因此我们最终得到每个轴分量的百分比乘数。 如果法线在 Y 轴上朝上我们得到的 Y 值为 1它会得到所有 Y 轴绘画而其他轴的值为 0不会得到任何结果。 这是最困难的部分。 接下来我们将三个混合值 (x,y,z) 与该纹理坐标处的纹理混合。 请记住纹理坐标位于世界空间中 vec4 xaxis texture2D( rockTexture, coords.yz); vec4 yaxis texture2D( rockTexture, coords.xz); vec4 zaxis texture2D( rockTexture, coords.xy); // blend the results of the 3 planar projections. vec4 tex xaxis * blending.x xaxis * blending.y zaxis * blending.z;我们终于得到它了。 tex是片段的最终颜色从 3 个轴混合 3 次。 将比例因子应用于纹理会非常方便因为你无疑会想要缩放它 // in float scale vec4 xaxis texture2D( rockTexture, coords.yz * scale); vec4 yaxis texture2D( rockTexture, coords.xz * scale); vec4 zaxis texture2D( rockTexture, coords.xy * scale); vec4 tex xaxis * blending.x xaxis * blending.y zaxis * blending.z;3、法线的处理方法 如果你使用三平面映射和法线贴图还需要对片段着色器中的法线应用相同的过程如下所示 vec4 xaxis texture2D( rockNormalTexture, coords.yz * scale); vec4 yaxis texture2D( rockNormalTexture, coords.xz * scale); vec4 zaxis texture2D( rockNormalTexture, coords.xy * scale); vec4 tex xaxis * blending.x xaxis * blending.y zaxis * blending.z;小技巧 可以创建 getTriPlanarBlend() 函数来计算漫反射、法线和镜面纹理的混合。 4、Triplanar映射的问题 你将遇到的第一个问题是性能。 几何体的片段将被渲染 3 次每个方向一次。 这意味着颜色和照明计算法线将被重复然后混合。 如果已经有空闲帧问题可能不想使用三平面映射。 下一个重大问题是 45 度角的混合尤其是在使用纹理泼溅的地方不同纹理重叠的情况。 你可以从角点再执行 4 次渲染但这样做所带来的性能损失可能不值得。 你可以尝试与深度图混合这是一种有时用于纹理泼溅的技术。 可见的透明重叠 5、结束语 现在我们理解了三平面贴图的工作原理及其用途。 但它还有许多其他应用程序可以稍微改变它以产生有趣的结果。 如前所述程序化地形是该技术的良好候选者。 洞穴、悬崖和复杂的熔岩隧道现在很容易纹理化。 你甚至可以根据一些随机或伪随机噪声例程来影响使用的纹理。 标高甚至坡度可以决定使用什么纹理。 通过修改例程以仅从顶部y 轴投影纹理并将混合值牢固地限制在可接受的范围内即 10%那么你可以在场景中所有物体的顶部渲染雪。 使用相同的技术原子爆炸可以烧焦从某个世界坐标原点辐射出的所有物体但基于原点的角度并使用暗烧纹理。 原文链接地形纹理Triplanar映射 — BimAnt
http://www.hkea.cn/news/14560090/

相关文章:

  • asp做网站好不好注册一个公司需要什么条件
  • 网站开发朋友圈龙华网站设计
  • 怎么建企业网站wordpress自动博客
  • 中小型网站建设如何网店推广新趋势包括以下什么趋势
  • 网站建设英文文献西安网站到首页排名
  • 2016wap网站开发语言外贸网站如何推广
  • 高中生做那个的网站外贸网络营销是做什么的
  • 做海报的网站什么编辑器wordpress 存储视频教程
  • 网站制作的基本步骤淘宝网网页版官网
  • 四川网站制作成都合肥网络推广培训学校
  • 如何做一个网站高防服务器租用
  • 外国网站服务器谷歌seo实战教程
  • 屏南网站建设兼职外贸网站建设公司效果
  • 快速网站建设多少钱洛阳万悦网站建设
  • 长寿网站建设公司vue 做的pc端网站
  • 建筑公司企业宣传册长沙百度关键词优化
  • 域名备案需要有网站吗做网站除了有服务器还需要什么问题
  • 好点的开发网站的公司做网站需要前置审批
  • 北京市建设教育协会网站首页怎样利用网站做引流
  • 口碑好的唐山网站建设wordpress自适应视频
  • 桂林微信网站开发网站链接怎么做
  • dnf卖飞机的网站怎么做的版面设计图大全模板
  • 黔西网站建设怎么把自己做的网站放到网上
  • 网站首页图片切换查找使用wordpress的网站
  • 通辽网站制作公司网站规划和建设的基本步骤
  • 做擦边球网站建水县住房和城乡建设局网站
  • 高明网站开发网站开发技术应用领域
  • 为校园网站建设提供114黄页的特点
  • 南召微网站建设wordpress模版如何使用
  • vue.js 可以做网站吗自己如何建一个网站