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

浙江个人网站备案孝感门户网

浙江个人网站备案,孝感门户网,网站建设安全需求,万江营销型网站建设回到目录 Unity置换贴图局部距离曲面细分 大家好#xff0c;我是阿赵。   这篇文章是我无聊的时候做了一个demo#xff0c;觉得挺有趣#xff0c;于是就发上来。这里面包含了4个内容#xff1a;置换贴图、顶点偏移、局部曲面细分#xff0c;曲面细分按距离调整强度。 …回到目录 Unity置换贴图局部距离曲面细分 大家好我是阿赵。   这篇文章是我无聊的时候做了一个demo觉得挺有趣于是就发上来。这里面包含了4个内容置换贴图、顶点偏移、局部曲面细分曲面细分按距离调整强度。 一、考虑的思路 一开始我是在考虑不同的技术手段实现物体的表面凹凸效果的。我能想到的方法大概是这些 1、凹凸贴图 2、法线贴图 3、视差偏移 4、置换顶点   这几个方法里面凹凸贴图现在很少有人用了因为效果不好。法线贴图效果比凹凸贴图好很多不过他只能模拟光射到表面时通过不同的法线方向来模拟凹凸感觉并不会真正的产生凹凸变形。视差偏移的效果比法线贴图好很多因为他是通过改变采样的位置来模拟遮挡物和被遮挡物之间的关系所以产生的不止是光影的凹凸感而是会真正的有遮挡关系。不过视差偏移真的要效果逼真要采样多次而且也不适合做太过明显的变形比如地形大面积凹凸。   最后就把思考点停留在了置换顶点上面了。这个是一个比较真实的手段靠一张置换贴图就能生成出不同高度的模型。 二、实现手段 我这里就简单的准备了一张高度图黑色是凹陷白色是凸出灰色是平地。 通过在顶点程序采样根据黑白的值来偏移顶点的y轴就可以做出凹凸的效果 很明显的问题顶点数不够所以凹凸的效果不好。   这个时候可以使用曲面细分增加一些面数就可以看到凹凸的感觉比较正常 不过这么多面数并不是我想希望看到的所以最后再加一个根据高度图决定是否需要细分只有凹凸的部分做细分。这里需要读取高度图然后把高度图的0到1范围转换成-1到1的范围然后然后计算值的绝对值大于一个数值才需要细分。也可以不转换到-1到1就那0到1的范围减去0.5再去绝对值比较也想。最后就能计算出一个范围内才需要细分的效果 这样在需要凹凸的地方增加一些面数其他的地方还是保持正常。   最后我还想根据距离进行细分如果离镜头远了那么细分的程度就没那么大所以把刚才的那个计算细分的值再用UnityDistanceBasedTess方法传入距离的最大最小值就可以计算出根据距离的细分结果了 这个效果虽然只是我一时想起来做的一个小Demo但我觉得似乎还是在某些地方挺好用的你们是否想到在哪些地方用得上呢 三、Shader代码 Shader azhao/DisplacementTest {Properties{_heightTex(heightTex, 2D) white {}_heightTexVal(heightTexVal,float) 0.01_TessValue(Max Tessellation, Range(1, 32)) 15_normalTex(normalTex, 2D) white {}_height(height, Float) 0_displacement(displacement,float) 1_minDist(minDist,float) 10_maxDist(maxDist,float) 25[HideInInspector] _texcoord( , 2D ) white {}[HideInInspector] __dirty( , Int ) 1}SubShader{Tags{ RenderType Opaque Queue Geometry0 }Cull BackCGPROGRAM#include Tessellation.cginc#pragma target 4.6#pragma surface surf Standard keepalpha addshadow fullforwardshadows vertex:vertexDataFunc tessellate:tessFunction struct Input{half filler;float2 uv_texcoord;};uniform sampler2D _heightTex;uniform float4 _heightTex_ST;uniform float _height;uniform float _TessValue;uniform sampler2D _normalTex;uniform float4 _normalTex_ST;float _displacement;float _heightTexVal;float _minDist;float _maxDist;float4 tessFunction(appdata_full v0, appdata_full v1, appdata_full v2){//这里要说明一下传进来三个点不能直接求平均值而要逐个点去采样//因为只要有一个点在需要细分的范围内这整个网格就需要细分不然凹凸的边缘会和不需要细分的网格裂开float2 uv0 v0.texcoord * _heightTex_ST.xy _heightTex_ST.zw;float col0 (tex2Dlod(_heightTex, float4(uv0, 0, 0.0)).r - 0.5);float2 uv1 v1.texcoord * _heightTex_ST.xy _heightTex_ST.zw;float col1 (tex2Dlod(_heightTex, float4(uv1, 0, 0.0)).r - 0.5);float2 uv2 v2.texcoord * _heightTex_ST.xy _heightTex_ST.zw;float col2 (tex2Dlod(_heightTex, float4(uv2, 0, 0.0)).r - 0.5);float col max(abs(col0), abs(col1));col max(col, abs(col2));col step( _heightTexVal, col);col col * _displacement;col max(col, 0.01f);return UnityDistanceBasedTess(v0.vertex, v1.vertex, v2.vertex, _minDist, _maxDist, col);}void vertexDataFunc( inout appdata_full v ){float2 uv_heightTex v.texcoord * _heightTex_ST.xy _heightTex_ST.zw;float temp_output_4_0 ( tex2Dlod( _heightTex, float4( uv_heightTex, 0, 0.0) ).r - 0.5 );float3 appendResult13 (float3(0.0 , ( temp_output_4_0 * _height ) , 0.0));v.vertex.xyz appendResult13;v.vertex.w 1;}void surf( Input i , inout SurfaceOutputStandard o ){float4 color16 IsGammaSpace() ? float4(0.5660378,0.5660378,0.5660378,0) : float4(0.280335,0.280335,0.280335,0);float2 uv_normalTex i.uv_texcoord * _normalTex_ST.xy _normalTex_ST.zw;o.Normal UnpackNormal(tex2D(_normalTex, uv_normalTex));o.Albedo color16.rgb;o.Alpha 1;}ENDCG}Fallback Diffuse }
http://www.tj-hxxt.cn/news/218080.html

相关文章:

  • 网站设计收集上海比较好的装修公司
  • 北京网站建站模板网络搭建是什么工作
  • 企业网站建站方案网站维护费计入什么科目
  • 什么是网站静态页面php做直播类型的网站
  • 做我女朋网站源码知识付费网站建设
  • 建设网站用户名是什么推广app赚佣金平台
  • 网站开发用什么软件seo网站页面f布局
  • wordpress页面怎么编辑器seo高手培训
  • 建设部网站查造价师网站建设纪念币发售
  • 电脑课做网站的作业湖南省建设信息网站查询
  • 建筑设计网站app客户管理app
  • 2018做网站的软件网站栏目建设存在的问题
  • wordpress 支付查看企业网站seo哪里好
  • 带你做网站毕设产品通过网站做营销
  • 网站建设与优化及覆盖率方案浙江建设网一官方网站
  • 全国建设工程信息网站qq飞车哪个公司开发的
  • 做网站需要自己上传产品吗卖域名赚钱吗
  • 做视频赚钱的网站专业网站建设价格
  • 公墓网站建设陶瓷网站源码
  • 南昌网站搭建制作公司沈阳快速建站模板
  • 网站做宣传电商企业有哪些
  • 无锡响应式网站设计网络品牌公关
  • 万户网站协作管理系统网页制作的意义
  • 网站建设若干意见网站设计尺寸1920
  • 网站关键词免费优化dede 网站搬家
  • 建设视频网站多少钱电子商务难学吗
  • 福泉网站制作微信公众平台开发工具
  • soho外贸建站春考网页制作素材
  • 安徽工程建设信息网站网站建设软件 优帮云
  • 起飞页做网站步骤怎么查询建设通网站