{"id":798,"date":"2019-12-04T19:27:05","date_gmt":"2019-12-04T11:27:05","guid":{"rendered":"http:\/\/blog.coolcoding.cn\/?p=798"},"modified":"2020-12-23T17:43:08","modified_gmt":"2020-12-23T09:43:08","slug":"shader%e4%b8%ad%e7%9a%84sv_vertexid%e8%af%ad%e4%b9%89","status":"publish","type":"post","link":"https:\/\/blog.coolcoding.cn\/?p=798","title":{"rendered":"[Unity]shader\u4e2d\u7684\u51e0\u4e2a\u8bed\u4e49\uff1aSV_VertexID, VPOS, VFACE"},"content":{"rendered":"\n<p><strong>uint&nbsp;vid&nbsp;:&nbsp;SV_VertexID <\/strong><br>\u8868\u793a\u7b2c\u51e0\u4e2a\u9876\u70b9\uff0c\u4f9d\u6b21\u4ece\u7b2c0\u5f00\u59cb&#8230;<br>\u8fd9\u6837\u5728\u8fdb\u884c\u9876\u70b9\u52a8\u753b\u65f6\uff0c\u53ef\u4ee5\u5bf9\u6307\u5b9a\u9876\u70b9\u8fdb\u884c\u91c7\u6837<br>v2f vert (appdata v, uint vid : SV_VertexID)<br> {<br>   float x = vid;<br>   \u2026<\/p>\n\n\n\n<p>\u6b64\u7279\u6027\u4ec5\u5b58\u5728\u4e8eDX10\uff08ShaderModel4.0\uff09\u3001GLCore\u3001OpenGL ES 3\u4e2d<br>\u6240\u4ee5\u9700\u8981\u6dfb\u52a0\u4ee5\u4e0b\u7f16\u8bd1\u6307\u4ee4\uff1a<br>#pragma target 3.5<\/p>\n\n\n\n<p><strong>VPOS<\/strong>\uff1a\u5c4f\u5e55\u50cf\u7d20\u5750\u6807\uff0c\u7528\u4e8e\u7247\u6bb5\u7740\u8272\u5668\uff0c\u9700\u8981\u6dfb\u52a0#pragma target 3.0\u7f16\u8bd1\u6307\u4ee4\u3002<br> fixed4 frag (v2f i, UNITY_VPOS_TYPE screenPos : VPOS) : SV_Target<br> {<br>   screenPos.xy = floor(screenPos.xy * 0.25) * 0.5;<br>   \u2026<br> \u5927\u591a\u6570\u5e73\u53f0\uff0cVPOS\u7c7b\u578b\u662ffloat4\uff0c\u4f46\u662f\u5bf9\u4e8eDirect3D9\u4e3afloat2\uff0c\u6240\u4ee5\u8981\u4f7f\u7528UNITY_VPOS_TYPE\u8fd9\u4e2a\u5b8f\u6765\u4f5c\u4e3ascreenPos\u7684\u7c7b\u578b\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>VFACE<\/strong>\uff1a\u88ab\u6e32\u67d3\u7684\u9762\u662f\u5426\u671d\u5411\u6444\u50cf\u673a\uff0c\u7528\u4e8e\u7247\u6bb5\u7740\u8272\u5668\uff0c\u9700\u8981\u6dfb\u52a0#pragma target 3.0\u7f16\u8bd1\u6307\u4ee4\u3002<br> fixed4 frag (fixed facing : VFACE) : SV_Target<br> {<br>   return facing &gt; 0 ? fixed4(0,0,0,0) : fixed4(1,1,1,1);<br> }<\/p>\n","protected":false},"excerpt":{"rendered":"<p>uint&nbsp;vid&nbsp;:&nbsp;SV_VertexID \u8868\u793a\u7b2c\u51e0\u4e2a\u9876\u70b9\uff0c\u4f9d\u6b21\u4ece\u7b2c0\u5f00\u59cb&#038;# [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[18],"_links":{"self":[{"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/posts\/798"}],"collection":[{"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=798"}],"version-history":[{"count":5,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/posts\/798\/revisions"}],"predecessor-version":[{"id":2870,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=\/wp\/v2\/posts\/798\/revisions\/2870"}],"wp:attachment":[{"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.coolcoding.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}