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

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

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

      碼農(nóng)干貨系列【8】--世界上最簡單的3D渲染(no webgl)

      2013-03-10 21:02  【當(dāng)耐特】  閱讀(4698)  評論(8)    收藏  舉報
      rd3DPlane

      簡介

      進(jìn)行上圖所示的3D格子地板的渲染,需要進(jìn)行Canvas的像素級別操作,從視點連接屏幕(屏幕就是canvas)中的所有像素點,形成大量的射線,倘若射線與地板相交,把交點以及交點的顏色反饋給屏幕(canvas)。如下圖所示:

      image

      像素操作

      在進(jìn)行3D渲染之前,必須了解Canvas的像素操作相關(guān)概念。在給定了width和height的canvas上,在坐標(biāo)(x ,y)上的像素的index構(gòu)成如下。

      var data=getImageData(0, 0, canvas.width, canvas.height);

      紅色index:((width * y) + x) * 4          像素值:data[((width * y) + x) * 4]

      綠色index:((width * y) + x) * 4 + 1    像素值:data[((width * y) + x) * 4+1]

      藍(lán)色index:((width * y) + x) * 4 + 2    像素值:data[((width * y) + x) * 4+2]

      透明度index:((width * y) + x) * 4 + 3 像素值:data[((width * y) + x) * 4+3]

      修改了任何像素的紅、綠、藍(lán)和alpha值之后,可以通過第二個函數(shù)來更新canvas上的顯示,那就是context.putImageData(imagedata, dx, dy)。

      尋找交點

      怎么找到射線與地板的交點?可以先列出已知的條件:

      視點坐標(biāo)A、屏幕上的點坐標(biāo)B、交點P的Y坐標(biāo)(y=0),向量AP,BP共線。

      根據(jù)上面的條件,利用兩兩向量共線(Ax-Px/Bx-Px = Ay-Py/By-Py = Az-Pz/Bz-Pz) 可以推導(dǎo)出交點的坐標(biāo)。

      格子材質(zhì)

      找到交點后,還剩下的問題就是根據(jù)z的坐標(biāo)渲染格子材質(zhì),如下面代碼所示:

       (Math.ceil(cv.x / sideLength) + Math.ceil(cv.z / sideLength)) % 2 === 0 

      上面的cv為交點坐標(biāo),sideLength為地板格子編程,根據(jù)上面的true和false返回相應(yīng)的顏色值。

      在線演示

      修改代碼里面的變量值點擊run again試試!

      Have Fun!

      主站蜘蛛池模板: 丁香婷婷色综合激情五月 | 久女女热精品视频在线观看| 久久综合开心激情五月天| 日韩中文日韩中文字幕亚| 激情国产一区二区三区四区| 亚洲日本精品一区二区| 99久久精品久久久久久婷婷| 国产成人8X人网站视频| 成人视频在线观看| 久久综合九色综合久桃花| 一本色道久久加勒比综合| 中文字幕无码av不卡一区| 又粗又大又黄又硬又爽免费看| 日本道高清一区二区三区| 亚洲性日韩精品一区二区 | 日韩一区二区三区av在线| 国产一区二区三区四区色| 激情国产一区二区三区四区| 亚洲国内精品一区二区| 国产日韩精品视频无码| 午夜爽爽爽男女污污污网站| 91精品国产91热久久久久福利| 五月天中文字幕mv在线| 日本一区二区三深夜不卡| 国产视频一区二区三区四区视频| 亚洲精品久荜中文字幕| 麻豆tv入口在线看| 色噜噜噜亚洲男人的天堂| 韩国一级毛片中文字幕| 天天摸天天做天天爽水多| 一二三四区无产乱码1000集| 国产一区二区三区四区五区加勒比 | 日本伊人色综合网| 少妇高潮喷水正在播放| 中文字幕 日韩 人妻 无码| 樱桃熟了a级毛片| 色AV专区无码影音先锋| 久久亚洲国产精品五月天| 国产成人精品亚洲资源| 高清国产精品人妻一区二区| 精品国产成人a在线观看|