<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Unity3D學習筆記12——渲染紋理

      1. 概述

      在文章《Unity3D學習筆記11——后處理》中論述了后處理是幀緩存(Framebuffer)技術實現(xiàn)之一;而另外一個幀緩存技術實現(xiàn)就是渲染紋理了。通常來說,我們渲染的場景會直接顯示到屏幕的顏色緩沖區(qū),但其實紋理和屏幕一樣都是二維的,通過把場景渲染到紋理,可以實現(xiàn)很多特別的三維應用場景。三維渲染引擎中,通常給相機封裝一個渲染目標(Render Target)的接口,如果不設置,就渲染到屏幕;如果將其設置成一個紋理對象,就渲染到紋理。

      2. 詳論

      一個渲染紋理的例子是鏡面效果。鏡面效果的原理是,在正常渲染場景之外,額外再離屏渲染一張紋理圖,渲染的內容是鏡面面前的場景;然后,將這個渲染紋理傳遞到鏡面物體上,左右顛倒繪制出來。

      案例非常簡單,甚至不需要腳本。首先我們創(chuàng)建一個quad網(wǎng)格作為鏡面,并且在鏡面前放置一些三維物體:
      imglink1

      然后創(chuàng)建一張渲染紋理:
      imglink2

      接著在場景中創(chuàng)建渲染到紋理的相機。將相機的渲染目標設置成剛剛創(chuàng)建的渲染紋理,同時也應該調整相機的位置和旋轉,使其于觀察方向相反:
      imglink4

      修改鏡面物體上的材質,使其調用的Shader為:

      Shader "Custom/Mirrior"
      {
          Properties
          {
              _MainTex ("Texture", 2D) = "white" {}
          }
          SubShader
          {
              Tags { "RenderType"="Opaque" }
              LOD 100
      
              Pass
              {
                  CGPROGRAM
                  #pragma vertex vert
                  #pragma fragment frag
         
                  #include "UnityCG.cginc"
      
                  struct appdata
                  {
                      float4 vertex : POSITION;
                      float2 uv : TEXCOORD0;
                  };
      
                  struct v2f
                  {
                      float2 uv : TEXCOORD0;    
                      float4 vertex : SV_POSITION;
                  };
      
                  sampler2D _MainTex;
                  float4 _MainTex_ST;
      
                  v2f vert (appdata v)
                  {
                      v2f o;
                      o.vertex = UnityObjectToClipPos(v.vertex);
      				o.uv = v.uv;
                      o.uv.x = 1 - o.uv.x;
               
                      return o;
                  }
      
                  fixed4 frag (v2f i) : SV_Target
                  {
                      // sample the texture
                      fixed4 col = tex2D(_MainTex, i.uv);         
                      return col;
                  }
                  ENDCG
              }
          }
      }
      

      Shader的內容非常簡單,給Shader傳入渲染紋理,給橫向的紋理坐標取反,最后得到一個左右顛倒的效果圖:
      imglink3

      3. 問題

      大部分介紹渲染紋理的文章,基本上都是這個案例。但是我覺得這個只是略具意思而已。

      1. 單從案例本身來說,渲染紋理需要相機的支持,但相機的位置和旋轉影像最終鏡面的效果。當然我們可以根據(jù)實際的效果來調整,但最好根據(jù)鏡面的成像原理算出合理的參數(shù)。
      2. 渲染紋理實際上是通過相機把場景又給渲染了一遍。渲染批次加倍,所以渲染紋理往往是比較耗費性能的。有時需要控制一些物體進入鏡面,一些物體不用進入,那么就要用到Unity的Layer(圖層)設置了。

      代碼地址

      posted @ 2022-08-20 12:07  charlee44  閱讀(672)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精选av一区二区| 开心一区二区三区激情| 少妇激情av一区二区三区| 亚洲狠狠婷婷综合久久久| 特级做a爰片毛片免费看无码| 国产区图片区小说区亚洲区| 久久中文字幕无码专区| 久久综合狠狠综合久久| 久久人人爽人人爽人人av| AV无码不卡一区二区三区| 少妇人妻88久久中文字幕 | 九九热在线视频只有精品| 国产精品福利中文字幕| 磐安县| 一本色道婷婷久久欧美| 久久精品国产亚洲夜色AV网站| 国产精品av中文字幕| 91色老久久精品偷偷性色| 欧美乱人伦人妻中文字幕| 亚洲精品视频一二三四区| 中文字幕无码免费久久| 日本亚洲一区二区精品久久| 亚洲一区二区国产av| 久久97超碰色中文字幕| 国产99青青成人A在线| 日韩精品亚洲专在线电影| 97se亚洲综合自在线| 日韩熟女乱综合一区二区| 亚洲国产精品毛片在线看| 亚洲 欧美 综合 在线 精品| 男女爽爽无遮挡午夜视频| 日本亚洲一区二区精品| 久久成人 久久鬼色| 无码人妻人妻经典| 99久久精品久久久久久婷婷| 国产精品一二三区久久狼| 91精品国产91热久久久久福利| 亚洲AV日韩AV综合在线观看 | 成人免费乱码大片a毛片| 香蕉影院在线观看| 婷婷六月天在线|