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

红袖添香网站建设时间专业网页设计价格

红袖添香网站建设时间,专业网页设计价格,如何查看网站的建设者,小贷网站需要多少钱可以做这是使用几何着色器在点中心生成一个点并根据这个点把原本的面片分成三个三角形的操作。 对于几何着色器构造相对简单#xff0c;网上的信息也相对较多#xff0c;需要注意的点就是需要提供一个新的数据结构供几何着色器输出#xff0c;因为几何着色器在顶点之后#xff0… 这是使用几何着色器在点中心生成一个点并根据这个点把原本的面片分成三个三角形的操作。 对于几何着色器构造相对简单网上的信息也相对较多需要注意的点就是需要提供一个新的数据结构供几何着色器输出因为几何着色器在顶点之后片元之前所以结构体就需要模型输入的结构体、顶点输出的结构体、几何输出的结构体。 下面是完整代码 Shader Kerzh/GeoShaderTest {Properties{_Length(Length,Float) 1}SubShader{Tags {LightMode UniversalForward}LOD 100Pass{Cull OffCGPROGRAM#pragma vertex vert#pragma fragment frag#pragma geometry geom#include UnityCG.cginc//cpu 传到 vsstruct appdata{float4 posOS : POSITION;float2 uv : TEXCOORD0;float4 normalOS : NORMAL;};//vs 传到 gsstruct v2g{float4 posOS : TEXCOORD0;float2 uv : TEXCOORD1;float3 normalOS : TEXCOORD2;};//gs 传到 fsstruct g2f{float4 posCS : SV_POSITION;float2 uv : TEXCOORD0;float3 normalWS : TEXCOORD1;float3 posWS : TEXCOORD2;float dis : TEXCOORD3;};float _Length;v2g vert (appdata input){v2g output;output.uv input.uv;output.normalOS input.normalOS;output.posOS input.posOS;return output;}//最大的顶点数这里比如你要生成三个三角形面片那么一个面片需要三个顶点就是9个顶点[maxvertexcount(9)]void geom (triangle v2g input[3],inout TriangleStreamg2f triStream){g2f center; // 中间那个点center.uv (input[0].uv input[1].uv input[2].uv)/3.0;// 计算中间点的uvfloat3 centerNormalOS (input[0].normalOS input[1].normalOS input[2].normalOS)/3.0;center.normalWS UnityObjectToWorldNormal(centerNormalOS );// 计算中间点的法线float3 centerPosOS (input[0].posOS input[1].posOS input[2].posOS)/3.0;// 计算中间点的位置centerPosOS centerPosOS centerNormalOS *_Length;// 沿着中心点法线根据噪声及系数位移中心点//中心点后期所需数据center.posWS mul(unity_ObjectToWorld, centerPosOS);center.posCS UnityObjectToClipPos(centerPosOS);center.dis 1;g2f output[3]; // 这里是原样把输入三角形的三个点放到了这里面只是为了下面取得方便for(int i0;i3;i){g2f p0;p0.uv input[i].uv;p0.normalWS UnityObjectToWorldNormal( input[i].normalOS);p0.posWS mul(unity_ObjectToWorld, input[i].posOS);p0.posCS UnityObjectToClipPos(input[i].posOS );p0.dis 0;output[i] p0;}// 根据这三个点分别和中心点制造三角形输出triStream.RestartStrip(); // 重新开始一个新的三角形triStream.Append(output[1]);triStream.Append(center);triStream.Append(output[0]);triStream.RestartStrip(); // 重新开始一个新的三角形triStream.Append(output[2]);triStream.Append(center);triStream.Append(output[1]);triStream.RestartStrip(); // 重新开始一个新的三角形triStream.Append(output[0]);triStream.Append(center);triStream.Append(output[2]);}float4 frag (g2f i) : SV_Target{return i.dis;return float4(i.uv,0,0);}ENDCG}} } 关于其中几何着色器的部分 //最大的顶点数这里比如你要生成三个三角形面片那么一个面片需要三个顶点就是9个顶点[maxvertexcount(9)]void geom (triangle v2g input[3],inout TriangleStreamg2f triStream){g2f center; // 中间那个点center.uv (input[0].uv input[1].uv input[2].uv)/3.0;// 计算中间点的uvfloat3 centerNormalOS (input[0].normalOS input[1].normalOS input[2].normalOS)/3.0;center.normalWS UnityObjectToWorldNormal(centerNormalOS );// 计算中间点的法线float3 centerPosOS (input[0].posOS input[1].posOS input[2].posOS)/3.0;// 计算中间点的位置centerPosOS centerPosOS centerNormalOS *_Length;// 沿着中心点法线根据噪声及系数位移中心点//中心点后期所需数据center.posWS mul(unity_ObjectToWorld, centerPosOS);center.posCS UnityObjectToClipPos(centerPosOS);center.dis 1;g2f output[3]; // 这里是原样把输入三角形的三个点放到了这里面只是为了下面取得方便for(int i0;i3;i){g2f p0;p0.uv input[i].uv;p0.normalWS UnityObjectToWorldNormal( input[i].normalOS);p0.posWS mul(unity_ObjectToWorld, input[i].posOS);p0.posCS UnityObjectToClipPos(input[i].posOS );p0.dis 0;output[i] p0;}// 根据这三个点分别和中心点制造三角形输出triStream.RestartStrip(); // 重新开始一个新的三角形triStream.Append(output[1]);triStream.Append(center);triStream.Append(output[0]);triStream.RestartStrip(); // 重新开始一个新的三角形triStream.Append(output[2]);triStream.Append(center);triStream.Append(output[1]);triStream.RestartStrip(); // 重新开始一个新的三角形triStream.Append(output[0]);triStream.Append(center);triStream.Append(output[2]);} 大部分在注释中描述的相对明确但要注意这些操作 center.uv (input[0].uv input[1].uv input[2].uv)/3.0;// 计算中间点的uv center.normalWS UnityObjectToWorldNormal(centerNormalOS );// 计算中间点的法线 //中心点后期所需数据 center.posWS mul(unity_ObjectToWorld, centerPosOS); center.posCS UnityObjectToClipPos(centerPosOS); center.dis noise; 根据一定的计算规则给中心点赋予详细的顶点信息这样他就和模型上初始存在的顶点无异数据填充完毕后和原顶点一起组成片元组成一个片元的操作如下。 triStream.RestartStrip(); //  重新开始一个新的三角形 triStream.Append(output[1]); triStream.Append(center); triStream.Append(output[0]); 通过这样的操作确立一个三角形片元中的三个点。 而这些点在像素着色器中调用时因为是对每个像素调用所以会根据这些点取插值 这里的像素着色器是这么写的 float4 frag (g2f i) : SV_Target {return i.dis; }所以对于一个片元中的像素根据片元三个顶点的信息 struct g2f {float4 posCS : SV_POSITION;float2 uv : TEXCOORD0;float3 normalWS : TEXCOORD1;float3 posWS : TEXCOORD2;float dis : TEXCOORD3; }; 插值到对应像素dis也就会呈现出一种渐变感。
http://www.zqtcl.cn/news/206216/

相关文章:

  • 模板网站和插件有哪些河南第一火电建设公司网站
  • 怎么测网站流量吗网络运维工程师教程
  • 有谁帮做网站网站建设seo合同书
  • 自己做视频网站只能用地址连接专业网站建设效果
  • 重庆网站建设价格费用酒店协会网站集静态模板
  • 会议专题网站建设报价单网站代码在哪里修改
  • 怎么用net123做网站怎么给企业制作网站
  • 网站建设合同模板网页设计团队
  • 做排行的网站淘宝流量平台
  • 用dw怎么做网站后台做一个网站需要怎么做
  • 沧州地区阿里巴巴做网站修改wordpress标题图片
  • 怎么判断网站开发语言互联网推广模式
  • 做电影网站被找版权问题怎么处理网站做的简单是什么意思
  • 九江网站建设网站制作深圳seo优化服务商
  • 上海网站推广珈维做映射后 内网无法通过域名访问网站
  • 太原网站关键词优化常州企业网站建设公司
  • 网站开发流程详细步骤不用淘宝客api如何做网站
  • xuzhou网站制作wordpress漫画小说
  • 公司建设网站的通知书百度经验官网入口
  • 如何做产品网站的推广静态网页制作总结
  • 网站建设有哪些知识点wordpress 静态
  • 买完阿里云域名如何做网站优化软件排行榜
  • 三五互联网站建设怎么样公司网上推广平台
  • 做网站网页的公司机械网站建设公司推荐
  • 影楼网站制作网站集群建设申请
  • 国内免费的短视频素材网站自己做网站的方法
  • jsp网站建设代码电子印章在线制作生成器免费
  • 叫别人做网站后怎么更改密码一手楼房可以做哪个网站
  • 网站上的图分辨率做多少网站栏目建设存在的问题
  • 山东省建设部网站官网php 开发手机网站建设