亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Android > 正文

OpenGL Shader實(shí)例分析(2)繪制心臟跳動效果

2019-10-21 21:24:59
字體:
供稿:網(wǎng)友

本文將介紹怎么用Shader來繪制一個跳動的心臟。這里會涉及到一些數(shù)學(xué)知識。先看效果圖:

OpenGL,Shader,心臟跳動

源代碼如下:

// Created by inigo quilez - iq/2013// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.// changed by stalendp@gmail.comShader "shadertoy/Heart" { // see https://www.shadertoy.com/view/XsfGRn CGINCLUDE   #include "UnityCG.cginc"   #pragma target 3.0  struct vertOut {   float4 pos:SV_POSITION;   float4 srcPos;  };   vertOut vert(appdata_base v) {   vertOut o;   o.pos = mul (UNITY_MATRIX_MVP, v.vertex);   return o;  }   fixed4 frag(float4 sp:WPOS) : COLOR0 {  float2 p = (2.0*sp.xy - _ScreenParams.xy) / min(_ScreenParams.y, _ScreenParams.x); p.y -= 0.25;  //background color float3 bcol = float3(1.0,0.8,0.7-0.07*p.y) * (1.0 - 0.25*length(p));  // animate float tt = fmod(_Time.y, 1.5)/1.5; float ss = pow(tt,.2) * 0.5 + 0.5; ss -= ss*0.2*sin(tt*6.2831*3.0)*exp(-tt*4.0); p *= float2(0.5, 1.5) + ss * float2(0.5, -0.5);  // shape float a = atan2(p.x,p.y)/3.141593; float r = length(p); float h = abs(a); float d = (13.0*h - 22.0*h*h + 10.0*h*h*h)/(6.0-5.0*h);  // color float s = 1.0-0.5*clamp(r/d,0.0,1.0); s = 0.75 + 0.75*p.x; s *= 1.0-0.25*r; s = 0.5 + 0.6*s; s *= 0.5+0.5*pow( 1.0-clamp(r/d, 0.0, 1.0 ), 0.1 ); float3 hcol = float3(1.0,0.5*r,0.3)*s;  float3 col = lerp( bcol, hcol, smoothstep( -0.01, 0.01, d-r) );  return float4(col,1.0); }   ENDCG   SubShader {  Pass {   CGPROGRAM    #pragma vertex vert   #pragma fragment frag   #pragma fragmentoption ARB_precision_hint_fastest    ENDCG  }   }  FallBack Off }

網(wǎng)上有很多關(guān)于心形的繪制方法,這里介紹一種。

1. 心形畫法的原理

float a = atan2(p.y,p.x)/3.1415;

atan2(p.y,p.x)求的是向量(x,y)所對應(yīng)的角度。求得的是弧度制的值,除以pi后得到的范圍是[0,1];

所以上面的函數(shù)就是求得平面上的坐標(biāo)點(diǎn)所對應(yīng)向量的角度(被映射到[0,1]之間);

如下圖,點(diǎn)p1和p2是屏幕上的不同的兩點(diǎn),但是他們對應(yīng)的角度是(4/8)*pi(經(jīng)過上面公式的映射,值為4/8);

下圖是個單位圓,p1和p2中間標(biāo)注的點(diǎn)4/8就是(atan2(p.y,p.x)/3.1415)的值。這個整個標(biāo)注出來的點(diǎn)(除了p1和p2外)呈現(xiàn)一個心形。所以只要為心形內(nèi)部和外部染成不同的顏色即可(如下圖中,p1染成紅色,p2染成背景色)。

方法是用step方法,這里用smoothstep,使得邊緣不那么硬, 然后結(jié)合lerp方法,如下:

 float a = atan2(p.y,p.x)/3.141593;  float r = length(p); float3 col = lerp( bcol, hcol, smoothstep( -0.01, 0.01, a-r) ); // 當(dāng)p1時,smoothstep返回1;p2時,smoothstep返回0;

OpenGL,Shader,心臟跳動

這樣就可以畫半個倒著的心:

OpenGL,Shader,心臟跳動

翻轉(zhuǎn)xy軸,并取絕對值,

float a = atan2(p.x,p.y)/3.141593;float r = length(p);float h = abs(a);float3 col = lerp( bcol, hcol, smoothstep( -0.01, 0.01, h-r) );

得到:

OpenGL,Shader,心臟跳動

心太肥了,用下面的函數(shù)來調(diào)節(jié)心形:

OpenGL,Shader,心臟跳動,對應(yīng)的曲線如下:

OpenGL,Shader,心臟跳動;

這樣就得到比較ok的心形了,如下:

OpenGL,Shader,心臟跳動

2. 心形跳動的算法

接下來,結(jié)合時間和函數(shù)來獲取一個跳動的心臟:

OpenGL,Shader,心臟跳動

對應(yīng)的圖像:

OpenGL,Shader,心臟跳動

正真的效果函數(shù),如下:

OpenGL,Shader,心臟跳動

OpenGL,Shader,心臟跳動

對應(yīng)的代碼為:

// animatefloat tt = fmod(_Time.y, 1.5)/1.5; // 周期為1.5秒float ss = pow(tt,.2) * 0.5 + 0.5;ss -= ss*0.2*sin(tt*6.2831*3.0)*exp(-tt*4.0);p *= float2(0.5, 1.5) + ss * float2(0.5, -0.5); // 不同的軸影響不同,使得心在跳動時,縱向變矮,橫向變寬

3. 顏色(待續(xù))

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品自拍区| 91动漫在线| 久久人人爽人人| 日本精品入口免费视频| 日本高清www免费视频| 99这里只有精品视频| 成人网在线播放| 最近中文字幕在线中文视频| 成人免费毛片aaaaa**| 日本不卡一区二区三区四区| www.玖玖玖| 久久中文字幕av一区二区不卡| 午夜精品福利一区二区三区av| 99久久综合国产精品二区| 日韩网站在线免费观看| 狠狠躁夜夜躁人人爽超碰91| 精品国产大片大片大片| 国产尤物av一区二区三区| 人人爱人人干婷婷丁香亚洲| 天天综合精品| 青娱乐在线视频免费观看| 久久久久久久久久久久av| 性色一区二区三区| 深夜福利日韩在线看| 久久久另类综合| 一本一道dvd在线观看免费视频| 一区二区三区日韩视频| www.国产二区| 最新91在线视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 在线观看亚洲视频| 蜜桃视频在线观看一区二区| 日本视频一区二区不卡| 99re国产| 亚洲大胆人体视频| 成人美女免费网站视频| 免费在线观看日韩av| 亚洲香蕉在线观看| 一级日韩一区在线观看| 日本一区午夜艳熟免费| 韩国三级hd中文字幕有哪些| 成人影院网站| 综合久久久久| 欧美日韩不卡合集视频| 国语产色综合| 中文字幕一区2区3区| 亚洲精品国产精品乱码不99| 亚洲国产免费看| 青青草99啪国产免费| 欧美极品jizzhd欧美| 日韩男女性生活视频| 黄色片一区二区三区| 久久久成人网| 中国一级片黄色一级片黄| 日韩精品专区在线影院重磅| 一级黄色大片儿| 日本午夜人人精品| 欧美v在线观看| 国产又粗又黄又爽的视频| 91蝌蚪精品视频| 国内精品在线观看视频| 欧美猛男男男激情videos| 麻豆国产精品777777在线| 国产欧美一区二区在线| 一区二区三区视频在线| 伊人久久国产精品| 欧美另类极品videosbest视| 日韩一二三区在线观看| 久久av导航| 91免费在线观看网站| 91av一区二区三区| 久久亚洲天堂网| 久久久精品在线观看| 久久99精品国产一区二区三区| 熟女丰满老熟女熟妇| www.亚洲免费| 亚洲图片一区二区| 欧美一区二区成人| 久久视频免费在线| 国产成人精品一区二区免费看京| 麻豆精品密在线观看| 福利视频一区二区三区四区| 欧美一区二区美女| 欧美一区二区精品| 欧美日韩免费做爰大片| 2222www色视频在线观看| 欧美久久久久久久久| 日韩无码精品一区二区| 视频一区二区视频| 91蝌蚪视频九色| 99蜜桃在线观看免费视频网站| 午夜伊人狠狠久久| 精品在线视频免费| 亚洲国产免费av| 日韩女优视频免费观看| 在线观看国产亚洲| 伊人久久大香线蕉综合热线| 中文在线аv在线| 日韩一区精品字幕| 黄色在线免费观看大全| 动漫一区二区| 99爱精品视频| 四虎成人永久免费视频| 天堂av资源在线观看| 久久狠狠一本精品综合网| 在线不卡的av| 亚洲在线一区二区三区| 青草综合视频| 在线播放视频一区| 人人爽人人av| 美国av免费观看| 成人免费视频视频在| 欧美日韩视频在线一区二区观看视频| 日韩精品福利一区二区三区| 丝瓜app色版网站观看| 欧美日韩在线精品成人综合网| 九色在线视频观看| 在线免费看视频| 久久r热视频| 亚洲av片不卡无码久久| 日韩和的一区二在线| 2020av在线| 麻豆久久一区二区| 中文字幕亚洲欧美在线不卡| 国产综合久久久| av成人午夜| 亚洲精品乱码久久久久久动漫| 婷婷国产成人久久精品激情| 日韩成人av在线播放| 忘忧草在线日韩www影院| 天天弄天天操| 农村寡妇一区二区三区| 全部av―极品视觉盛宴亚洲| 欧美jizzhd精品欧美巨大免费| 国产激情视频一区二区三区| 欧美性猛交一区二区三区| 不卡av在线网站| 99久久久免费精品| 欧美日韩亚洲国产综合| 久久视频精品| 精品免费囯产一区二区三区| 91gao视频| 男人的天堂avav| 成人欧美一区二区三区在线观看| 狠狠色噜噜狠狠| 国产精品无码天天爽视频| 欧美成人手机在线视频| 成人影院免费观看| 中文精品在线| 57pao国产成永久免费视频| eeuss草民免费| 亚洲第一精品福利| av一区二区在线播放| 精品一区二区三区影院在线午夜| 国产亚洲第一区| 久草综合在线| 亚洲最新色图| 亚洲综合在线免费观看| 国产精品亚洲综合久久小说| 亚洲图片欧美视频| 在线观看国产福利| 小小女视频网站色琼网站| 欧美图片自拍偷拍| 精品呦交小u女在线| 国产调教精品| 国产又色又爽又黄又免费| 天天干 夜夜操| 91在线观看免费高清| 日韩电影在线一区二区| 玉足女爽爽91| 多野结衣av一区| 宅男在线观看免费高清网站| av男人的天堂av| 亚洲日本丝袜连裤袜办公室| 91麻豆产精品久久久久久夏晴子| 久久这里只有精品18| 国产激情视频一区二区在线观看| 天天干天天干天天干天天干天天干| 韩国精品视频在线观看| 国产精品视频永久免费播放| 国产精品传媒入口麻豆| 色丁香婷婷综合久久| 国产不卡一区二区在线观看| 国产精品扒开腿做爽爽爽软件| 精品人妻中文无码av在线| 日韩精品一区二区三区免费观影| 四虎精品影院在线观看视频| 一区二区三区中文字幕| 中文字幕乱码人妻无码久久| 日韩久久在线| 在线观看免费国产小视频| 55av亚洲| av在线不卡观看| 水中色av综合| 久久综合狠狠综合久久综青草| 国产精品白丝久久av网站| 久久一夜天堂av一区二区三区| 一级网站免费观看| 亚洲欧美视频在线观看视频| 欧美肥婆xxxx欧美另类| a一区二区三区| 日韩三级视频在线看| 国产亚洲欧美日韩日本| 免费av在线电影| 国产视频亚洲精品| 日本伦理一区二区| xvideos.蜜桃一区二区| 久久国产精品亚洲| 伊人网视频在线| 男人和女人做事情在线视频网站免费观看| 婷婷精品久久久久久久久久不卡| 西西午夜视频| 亚洲国产精品成人一区二区在线| 999www人成免费视频| 色婷婷av一区二区三区之一色屋| 99精品全国免费观看| 欧美精品激情在线观看| 精品视频在线观看免费观看| 色8久久影院午夜场| 国产精品亚洲色图| 亚洲依依成人| 国模无码一区二区三区| 五月天最新网址| 黄色香蕉视频在线观看| 成人黄色激情网| 最新在线观看av网站| 免费国产自久久久久三四区久久| 忘忧草在线影院两性视频| 爱高潮www亚洲精品| 中文字幕天堂在线| 国产精品不卡一区二区三区在线观看| 蜜桃成人免费视频| 日韩大片在线免费观看| 欧美三日本三级少妇三2023| 亚洲综合电影一区二区三区| 亚洲精品午夜av福利久久蜜桃| 日本一极黄色片| 国产一区在线观看麻豆| 亚洲а∨天堂久久精品9966| 亚洲欧美日韩综合精品网| 天天草天天爽| 亚洲一区二区三区免费观看| 欧美福利一区| 亚洲欧美影院| 原千岁中文字幕| 欧美另类女人| 一二三四在线观看视频韩国| 神马久久久久久久久久| 国产大片精品免费永久看nba| 女女同性女同一区二区三区91| 久久影视一区二区| 午夜免费看视频| 永久看看免费大片| 国产在线制服美女| 在线观看视频99| 国产传媒在线播放| 欧美喷水一区二区| 日韩精品久久| 国产三级av在线| 免费视频最近日韩| 国产视频一区欧美| 久久久黄色大片| 黄色成人在线网| 一卡二卡在线视频| 亚洲图片中文字幕| 亚洲成人av动漫| 亚洲已满18点击进入在线看片| 亚洲一区二区精品在线观看| 亚洲午夜在线观看视频在线| 欧美日韩国产第一页| 极品久久久久久久| 北条麻妃高清一区| 折磨小男生性器羞耻的故事| 欧美国产视频一区| 亚洲免费成人| 久久亚洲图片| 久久久精品久久久久| 黄色片免费大全| 国产日韩欧美一区二区三区在线观看| chinese少妇国语对白| 精品一区二区三区日本| 国产不卡精品视男人的天堂| 色综合天天综合网国产成人综合天| 日本成人超碰在线观看| 无码aⅴ精品一区二区三区| 国产探花精品一区二区| 69影院欧美专区视频| 国产精品妹子av| 日韩免费观看高清完整版在线观看| 日韩av综合网| 9999久久久久| 尤物网站在线观看| 国产精品爽爽久久久久久| 香蕉视频免费在线看| 日韩有码在线视频| 好男人在线视频www| 久久久亚洲精品视频| 国产91沈先生在线播放| 久久久久88色偷偷免费| 全彩无遮挡全彩口工漫画h#| 波多野结衣家庭教师| 精品一级视频| 天天天天天天天操| 亚洲精品视频免费观看| 欧美极度另类性三渗透| 国产乱人伦偷精品视频免下载| 在线观看免费黄色网址| 超碰在线人人爱| 亚洲跨种族黑人xxx| 免费观看av网站| 少妇高潮在线观看| 小明成人免费视频一区| 伊人色在线观看| 人交獸av完整版在线观看| 日韩深夜福利网站| 黑人玩弄人妻一区二区三区| 午夜av免费观看| 国产视频欧美视频| 日韩精品成人一区二区三区| 日本一区二区电影| 久久91精品国产91久久久| 亚洲精品美女视频| 免费一级肉体全黄毛片| zzijzzij亚洲日本少妇熟睡| √天堂8资源中文在线| 久久米奇亚洲| 91免费在线观看网站| 欧美日本另类xxx乱大交|