• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于移動(dòng)增強(qiáng)現(xiàn)實(shí)的京劇臉譜繪制的實(shí)現(xiàn)

      2021-06-10 08:39:20薛亞田舒后程明智劉
      關(guān)鍵詞:著色器臉譜著色

      薛亞田舒 后程明智劉 龍

      (北京印刷學(xué)院新媒體學(xué)院,北京102600)

      隨著增強(qiáng)現(xiàn)實(shí)技術(shù)的發(fā)展以及智能手機(jī)的普及,生活中涌現(xiàn)出越來越多的增強(qiáng)現(xiàn)實(shí)應(yīng)用,為人們?nèi)粘5囊率匙⌒刑峁┲鴤鹘y(tǒng)應(yīng)用所無法實(shí)現(xiàn)的便利。除了日常生活外,人們逐漸注意到,想要提升人們對(duì)傳統(tǒng)文化的好奇心,增加人們對(duì)傳統(tǒng)工藝的新鮮感,就要將新技術(shù)應(yīng)用到傳統(tǒng)文化當(dāng)中。京劇臉譜是中國(guó)戲曲獨(dú)有的,是中國(guó)傳統(tǒng)文化當(dāng)中不可或缺的一項(xiàng),但是由于當(dāng)前娛樂的多元化,京劇臉譜逐漸邊緣化。

      早些年,國(guó)內(nèi)對(duì)京劇臉譜的研究大多是臉譜的藝術(shù)特征研究,詮釋臉譜色彩及圖案造型與人物性格特征的關(guān)系,揭示這一古老文化蘊(yùn)含的傳統(tǒng)美學(xué)觀念,并對(duì)臉譜中所代表的中國(guó)傳統(tǒng)文化進(jìn)行分析與研究[1];一部分關(guān)于臉譜的視覺符號(hào)系統(tǒng)的研究,表明臉譜具有規(guī)范而統(tǒng)一的視覺符號(hào),能夠向觀眾傳遞出戲曲人物的性格、年齡和忠、奸、善、惡等直觀的信息[2]。而增強(qiáng)現(xiàn)實(shí)在臉譜方面的研究還停留在數(shù)字化信息提取,或是將臉譜進(jìn)行表情包設(shè)計(jì)的階段[3],有關(guān)于臉譜的增強(qiáng)現(xiàn)實(shí)繪制應(yīng)用極為少見。

      增強(qiáng)現(xiàn)實(shí)技術(shù)近些年在傳統(tǒng)文化應(yīng)用方面展現(xiàn)出巨大的潛力。2002年,由德國(guó)學(xué)者Tim Gleue等人發(fā)起的,名為ARCHEOGUIDE(Augmented Reality-based Cultural Heritage On-site GUIDE,縮寫為ARCHEOGUIDE)的研究項(xiàng)目,利用數(shù)字化展示與體驗(yàn)的方式對(duì)希臘地區(qū)的赫拉神廟進(jìn)行了實(shí)驗(yàn),以一種新的方式在游客游覽的過程中加入可視化展示和體驗(yàn)[4]。國(guó)內(nèi)基于增強(qiáng)現(xiàn)實(shí)技術(shù)的傳統(tǒng)文化應(yīng)用方面的研究比起國(guó)外要稍晚一些,而京劇臉譜的繪制方面的更是少之又少。所以本文將結(jié)合前人在傳統(tǒng)文化方面的研究經(jīng)驗(yàn),實(shí)現(xiàn)京劇臉譜的增強(qiáng)現(xiàn)實(shí)繪制。

      1 相關(guān)技術(shù)簡(jiǎn)介

      1.1 增強(qiáng)現(xiàn)實(shí)技術(shù)

      在虛擬現(xiàn)實(shí)的研究過程中,學(xué)者們發(fā)現(xiàn)虛擬現(xiàn)實(shí)完全脫離現(xiàn)實(shí)獨(dú)立呈現(xiàn),為了彌補(bǔ)這點(diǎn)不足,增強(qiáng)現(xiàn)實(shí)技術(shù)應(yīng)運(yùn)而生。其與虛擬現(xiàn)實(shí)技術(shù)最大的不同點(diǎn)就是,虛擬現(xiàn)實(shí)中的所有的信息都是由計(jì)算機(jī)模擬生成,創(chuàng)造出一個(gè)虛擬的環(huán)境,而增強(qiáng)現(xiàn)實(shí)技術(shù)利用攝像機(jī)幫助,將虛擬搭建的信息疊加到真實(shí)的場(chǎng)景當(dāng)中去[5]。增強(qiáng)現(xiàn)實(shí)技術(shù)能夠從虛實(shí)融合的角度,增強(qiáng)人們對(duì)真實(shí)事物的理解和感知。

      實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)的功能主要離不開三大關(guān)鍵技術(shù),跟蹤注冊(cè)技術(shù)、虛實(shí)融合顯示技術(shù)、人機(jī)交互技術(shù),其中核心技術(shù)是跟蹤注冊(cè)技術(shù)[6]。要想將真實(shí)世界和虛擬物體無縫融合,必須實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)攝像頭,確定攝像頭相對(duì)于真實(shí)場(chǎng)景的位置以及角度等狀態(tài),校準(zhǔn)虛擬信息所要疊加的位置,實(shí)時(shí)將虛擬信息呈現(xiàn)在屏幕中,完成三維注冊(cè)。增強(qiáng)現(xiàn)實(shí)系統(tǒng)結(jié)構(gòu)如圖1所示。

      1.2 著色器原理

      Shader,即著色器,其本質(zhì)是渲染管線中的一個(gè)環(huán)節(jié)。渲染管線也稱為渲染流水線,是顯示芯片內(nèi)部處理圖形信號(hào)相互獨(dú)立的并行處理單元。具體流程如圖2所示。

      圖1 增強(qiáng)現(xiàn)實(shí)系統(tǒng)結(jié)構(gòu)

      圖2 渲染流水線

      渲染是將三維場(chǎng)景中的模型,按照定好的環(huán)境、燈光、材質(zhì)及渲染參數(shù),二維投影成數(shù)字圖像的過程。GPU流水線上一些可高度編程的階段,由著色器編譯出來的最終代碼是會(huì)在GPU上運(yùn)行的,有一些特定類型的著色器,如頂點(diǎn)著色器、片元著色器。依靠著色器可以控制流水線中的渲染細(xì)節(jié),例如用頂點(diǎn)著色器來進(jìn)行頂點(diǎn)變換及傳遞數(shù)據(jù),用片元著色器來進(jìn)行逐像素渲染。

      1.3 Unity Shader簡(jiǎn)介

      常見的著色語言有,DirectX的HLSL(High Level Language)、OpenGL的GLSL(OpenGL Shading Language)以及NVIDIA的CG(C for Graphic),這些底層著色語言在使用的過程中增加了開發(fā)者的開發(fā)難度。為了避免直接控制底層著色器,Unity為開發(fā)者提供了高層級(jí)的渲染抽象層——Unity Shader,通過這種方式讓開發(fā)者更加輕松地控制渲染[7]。在Unity Shader中,開發(fā)者可以輕易地實(shí)現(xiàn)傳統(tǒng)Shader所無法滿足的功能。例如一些渲染設(shè)置,在傳統(tǒng)的Shader當(dāng)中,開發(fā)者需要自行設(shè)置額外的代碼,而在Unity Shader中,可以通過簡(jiǎn)單一行指令實(shí)現(xiàn)。同時(shí),傳統(tǒng)的Shader無法在同一個(gè)文件中同時(shí)編寫頂點(diǎn)著色器和片元著色器,但是Unity Shader可以。由此可見,Unity Shader可以大幅度降低實(shí)現(xiàn)著色的困難,所以本文當(dāng)中主要利用了Unity Shader來實(shí)現(xiàn)京劇臉譜的繪制。

      2 京劇臉譜繪制的實(shí)現(xiàn)

      2.1 京劇臉譜繪制系統(tǒng)架構(gòu)

      京劇臉譜繪制系統(tǒng),主要包含了京劇臉譜簡(jiǎn)介,色畫方法,臉譜分類,AR臉譜繪制,經(jīng)典臉譜賞析五個(gè)模塊,如圖3所示。其中色畫方法中又分成了揉臉、抹臉、勾臉三個(gè)部分,是勾畫臉譜的三種畫法。臉譜分類中分成了整臉,三塊瓦臉,碎花臉與歪臉,僧臉與太監(jiān)臉等八種不同的類型。AR臉譜制作模塊,用戶可以在紙上繪制臉譜的顏色樣式,利用著色技術(shù)將其繪制到系統(tǒng)中生成三維的著色臉譜。經(jīng)典臉譜賞析模塊中主要介紹喜神、劉天君、馬天君、李天王、曹操、張飛等經(jīng)典京劇臉譜,通過這種方法科普臉譜知識(shí)。

      2.2 功能實(shí)現(xiàn)

      2.2.1 識(shí)別功能的實(shí)現(xiàn)

      繪制功能需要實(shí)現(xiàn)攝像頭讀取以及識(shí)別圖片,本系統(tǒng)采用EasyAR插件,在unity平臺(tái)上實(shí)現(xiàn)該功能。編寫代碼,讀取紋理圖片,使得AR臉譜繪制功能該模塊能夠獲取到現(xiàn)實(shí)繪制的彩色紋理。

      2.2.2 著色器的實(shí)現(xiàn)

      應(yīng)用3D max制作臉譜面具模型,并將其導(dǎo)入到Unity當(dāng)中,為京劇臉譜模型編寫著色器,實(shí)現(xiàn)將讀取到的紋理繪制到模型上這一功能。新建一個(gè)材質(zhì)球,將其賦予到導(dǎo)入的臉譜模型上,修改著色器類型為寫好的著色器。

      頂點(diǎn)著色器代碼如下:

      v2f vert(appdata_base v)

      {v2f o;

      o.pos=UnityObjectToClipPos(v.vertex);

      o.uv=TRANSFORM_TEX(v.texcoord,_MainTex);

      float4 top=lerp(_UvPints[0],_UvPints[2],o.uv.x);

      float4 bottom=lerp(_UvPints[1],_UvPints[3],o.uv.x);

      float4 fixedPos=lerp(bottom,top,o.uv.y);

      float4x4 Rendering_Matrix_VP=mul(_RenderingProject-Matrix,_RenderingViewMatrix);

      o.fixedPos=ComputeGrabScreenPos(mul(Rendering_Matrix_VP,fixedPos));

      return o;}

      片元著色器代碼如下:

      float4 frag(v2f i):COLOR

      {float2 coord=i.fixedPos.xy/i.fixedPos.w;

      #if SHADER_API_METAL

      #if UNITY_UV_STARTS_AT_TOP

      if(_MainTex_TexelSize.y<0.0)

      coord.y=1.0-coord.y;

      #endif

      coord.x=1.0-coord.x;

      #else

      #if UNITY_UV_STARTS_AT_TOP

      coord.y=1.0-coord.y;

      #endif

      #endif

      return tex2D(_MainTex,coord);}

      2.2.3 坐標(biāo)空間轉(zhuǎn)換

      在渲染流水線中,一個(gè)頂點(diǎn)要經(jīng)過多個(gè)坐標(biāo)空間的變換才能最終被畫在屏幕上。一個(gè)頂點(diǎn)最開始是在模型空間定義的,最終它會(huì)變換到屏幕空間中,得到真正的屏幕像素坐標(biāo)。利用Unity Shader可以實(shí)現(xiàn)將模型從模型空間—世界空間—觀察空間—裁剪空間—屏幕空間的轉(zhuǎn)換,得到真實(shí)的坐標(biāo)。

      實(shí)現(xiàn)空間換算用到的部分代碼如下:

      points.SetRow(0,new Vector4(targetAnglePoints1.x,targetAnglePoints1.y,targetAnglePoints1.z,1f));

      points.SetRow(1,new Vector4(targetAnglePoints2.x,targetAnglePoints2.y,targetAnglePoints2.z,1f));

      points.SetRow(2,new Vector4(targetAnglePoints3.x,targetAnglePoints3.y,targetAnglePoints3.z,1f));

      points.SetRow(3,new Vector4(targetAnglePoints4.x,targetAnglePoints4.y,targetAnglePoints4.z,1f));

      material.SetMatrix("_UvPints",points);

      material.SetMatrix("_RenderingViewMatrix",Camera.main.worldToCameraMatrix);

      material.SetMatrix("_RenderingProjectMatrix",GL.Get-GPUProjectionMatrix(Camera.main.projectionMatrix,false);

      2.2.4 實(shí)驗(yàn)效果展示

      將以上制作的內(nèi)容發(fā)布為apk格式,到測(cè)試系統(tǒng)當(dāng)中驗(yàn)證,測(cè)試系統(tǒng)為Android 10版本。在測(cè)試時(shí),先將臉譜繪制功能打開,利用攝像頭讀取空白臉譜,能夠生成臉譜模型,如圖4(a)所示。實(shí)現(xiàn)虛實(shí)配準(zhǔn)以后,在臉譜上隨意繪制圖樣,發(fā)現(xiàn)在現(xiàn)實(shí)臉譜上繪制的色彩能夠著色到虛擬的模型上,繪制效果圖如圖4(b)所示。在實(shí)驗(yàn)過程中,虛擬的臉譜模型在繪制過程中不穩(wěn)定,還有待改進(jìn)。

      圖4 京劇臉譜繪制效果圖

      3 結(jié)語

      本文主要實(shí)現(xiàn)京劇臉譜繪制,能夠?qū)崟r(shí)獲取相機(jī)拍攝到的紋理信息,將其換算并著色到模型上這一核心功能,靈活應(yīng)用Unity強(qiáng)大的Shader技術(shù),與傳統(tǒng)文化京劇臉譜的繪制結(jié)合起來。雖然整個(gè)系統(tǒng)的基本技術(shù)已經(jīng)實(shí)現(xiàn),但是目前還有很多不足的地方,比如模型繪制后的真實(shí)感情況、穩(wěn)定性都有待改進(jìn)。

      猜你喜歡
      著色器臉譜著色
      蔬菜著色不良 這樣預(yù)防最好
      帖臉譜
      啟蒙(3-7歲)(2020年12期)2020-12-25 05:34:02
      蘋果膨大著色期 管理細(xì)致別大意
      基于UE4 實(shí)時(shí)射線追蹤技術(shù)的研究與探討
      基于Unity Shader石油泄漏現(xiàn)象模擬的研究
      基于IMx6的opengl圖形著色器開發(fā)研究
      做個(gè)臉譜迎『六一』
      10位畫家為美術(shù)片著色
      電影(2018年10期)2018-10-26 01:55:48
      灶王爺?shù)摹澳樧V”
      名作欣賞(2017年25期)2017-11-06 01:40:12
      Thomassen與曲面嵌入圖的著色
      宁强县| 思茅市| 广元市| 郓城县| 保康县| 南宁市| 琼海市| 平定县| 阳山县| 图们市| 仲巴县| 楚雄市| 连城县| 肇东市| 通渭县| 孙吴县| 阜宁县| 德保县| 丽水市| 新化县| 娱乐| 平定县| 江阴市| 彰化县| 玉田县| 铜鼓县| 池州市| 宁武县| 彰武县| 连云港市| 宁波市| 洞头县| 卓资县| 昌黎县| 宣恩县| 长沙县| 保靖县| 海南省| 溧阳市| 怀集县| 万山特区|