精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一起學 WebGL:可視空間之正射投影

開發 前端
長方體可視空間是一種常用的可視空間,它由正射投影(Orthographic Projection) 產生。此外還有更常用的 透視投影。

嗨,大家好呀,我是你們的前端西瓜哥啊。上一節我們學習了 視圖矩陣,通過它我們可以像一個自由的攝像機一樣,可以在三維世界的任意位置觀察目標模型,但也遇到了一些問題。

其中一個問題就是,在超過某個臨界值時。三角形會出現殘缺的現象,甚至直接不見了,見下圖。這是為什么呢?

圖片

對應源碼:

https://codesandbox.io/s/j86roh?file=/index.js。

可視空間

上面殘缺的情況會在 z 變得比較大時出現。所謂視圖矩陣,其實利用的是一種相對關系。

我們沒有移動,坐標系的原點還是在畫布的中心位置,但視圖矩陣可以計算出模型新的位置,給一個更小的 z,其實就是這個模型的所有頂點在遠離我們。

但是,部分像素超出了某個范圍,就被 WebGL 直接忽略掉了。

這個范圍是多少呢?是 [-1, 1] 區間(大于等于 -1,小于等于 1),x、y、z 維都是這個范圍。超出這個范圍的像素,一律不畫。

利用這個性質,我們可以將一些不需要出現在畫面中的物體刪除。比如一些遙遠的遠景,或是跑到視口外的模型,不繪制它們能提高繪制效率。

正視投影

長方體可視空間是一種常用的可視空間,它由 正射投影(Orthographic Projection) 產生。此外還有更常用的 透視投影,我們后面再聊。

圖片

正視投影的作用是:將一個指定尺寸的盒子,映射壓縮成 [-1, 1] 范圍的盒子,使其中的像素點全部可以繪制出來,之外的像素點則被拋棄。

正射投影的矩陣公式為:

圖片

其中 r、l 等值,對應 left、right、top、bottom、near、far 的縮寫。

JavaScript 代碼實現為:

function createOrthoMatrix(left, right, bottom, top, near, far) {
  const width = right - left;
  const height = top - bottom;
  const depth = far - near;

  // prettier-ignore
  return new Float32Array([
    2 / width, 0, 0, 0,
    0, 2 / height, 0, 0,
    0, 0, -2 / depth, 0,
    -(right + left) / width, -(top + bottom) / height, -(far + near) / depth, 1
  ]);
}

這里不得不感謝 Github Colipot 提供的支持了。

實驗

我們來寫個 demo,來體驗一下透視矩陣的效果。

為了不引入過多的復雜度,我們只繪制兩個三角形,且不引入視圖矩陣。然后可以通過上下方向鍵改變可視空間的 near 和 far 值。此時我們就能看到三角形消失的現象,因為它跑出我們的可視空間了。

兩個三角形都平行于 xy 屏幕,只是 z 不同,分別為 0.2 和 -0.2。紅色在上邊,黃色在下邊。

兩個三角形的緩沖區數據為:

const verticesColors = new Float32Array([
  // 底下的黃色三角形
  0, 0.5, -0.1, 1, 1, 0,  // 點 1 的位置和顏色信息
  -0.5, -0.5, -0.1, 1, 1, 0,  // 點 2
  0.5, -0.5, -0.1, 1, 1, 0,  // 點 3
  // 上邊的紅色三角形
  -0.5, 0.25, 0.1, 1, 0, 0, 
  0.5, 0.25, 0.1, 1, 0, 0,
  0, -0.75, 0.1, 1, 0, 0,  
]);

效果如下:

圖片

這些點都在 -1 到 1 的范圍內。所以能全部渲染出來。

頂點著色器要加一個保存正射投影矩陣的 mat4 矩陣類型變量,因為不需要改變,所以使用 uniform 關鍵字。

const vertexShaderSrc = `
attribute vec4 a_Position;
attribute vec4 a_Color;
uniform mat4 u_OrthoMatrix; // 正射投影矩陣
varying vec4 v_Color;
void main() {
 gl_Position = u_OrthoMatrix * a_Position;
 v_Color = a_Color;
}
`;

然后綁定鍵盤按下事件:

window.addEventListener('keydown', (event) => {
  switch (event.key) {
    case 'ArrowUp':
      near += 0.1;
      far += 0.1;
      break;
    case 'ArrowDown':
      near -= 0.1;
      far -= 0.1;
      break;
  }
  near = Math.round(near * 10) / 10; // 消除浮點數誤差
  far = Math.round(far * 10) / 10;

  render();
});

渲染函數為:

function render() {
  gl.vertexAttribPointer(a_Position, 3, gl.FLOAT, false, SIZE * 6, 0);
  gl.enableVertexAttribArray(a_Position);

  gl.vertexAttribPointer(a_Color, 3, gl.FLOAT, false, SIZE * 6, SIZE * 3);
  gl.enableVertexAttribArray(a_Color);

  /****** 正射投影 ******/
  // prettier-ignore
  const orthoMatrix = createOrthoMatrix(
    // 左右上下近遠
    -1, 1, -1, 1, near, far
  )

  gl.uniformMatrix4fv(u_OrthoMatrix, false, orthoMatrix);
  /*** 繪制 ***/
  // 清空畫布,并指定顏色
  gl.clearColor(0, 0, 0, 1);
  gl.clear(gl.COLOR_BUFFER_BIT);
  // 繪制三角形
  gl.drawArrays(gl.TRIANGLES, 0, 6);
}

不斷地按下方向鍵,near 和 far 越來越小,即可視空間離我們越來越遠。

可以看到,當 near 從 0.1 變成 0 后,紅色三角形不見了,黃色的還在。因為我們一開始給紅色三角形設置的 z 為 0.1,已經不在可視范圍內了。

同理,當 far 越來越大,從 -0.1 變成 0 后,黃色三角形則不見了。

圖片

源碼實現

/** @type {HTMLCanvasElement} */
const canvas = document.querySelector("canvas");
const gl = canvas.getContext("webgl");
const infoDiv = document.createElement("div");
document.body.appendChild(infoDiv);

const vertexShaderSrc = `
attribute vec4 a_Position;
attribute vec4 a_Color;
uniform mat4 u_OrthoMatrix; // 正射投影矩陣
varying vec4 v_Color;
void main() {
 gl_Position = u_OrthoMatrix * a_Position;
 v_Color = a_Color;
}
`;

const fragmentShaderSrc = `
precision highp float;
varying vec4 v_Color;
void main() {
  gl_FragColor = v_Color;
}
`;

/**** 渲染器生成處理 ****/
// 創建頂點渲染器
const vertexShader = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(vertexShader, vertexShaderSrc);
gl.compileShader(vertexShader);
// 創建片元渲染器
const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(fragmentShader, fragmentShaderSrc);
gl.compileShader(fragmentShader);
// 程序對象
const program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
gl.useProgram(program);
gl.program = program;

// prettier-ignore
const verticesColors = new Float32Array([
  // 底下的黃色三角形
  0, 0.5, -0.1, 1, 1, 0,  // 點 1 的位置和顏色信息
  -0.5, -0.5, -0.1, 1, 1, 0,  // 點 2
  0.5, -0.5, -0.1, 1, 1, 0,  // 點 3
  // 上邊的紅色三角形
  -0.5, 0.25, 0.1, 1, 0, 0, 
  0.5, 0.25, 0.1, 1, 0, 0,
  0, -0.75, 0.1, 1, 0, 0,  
]);
// 每個數組元素的字節數
const SIZE = verticesColors.BYTES_PER_ELEMENT;

const orthoMatrix = createOrthoMatrix(-1, 1, -1, 1, 1.05, -1);

// 創建緩存對象
const vertexColorBuffer = gl.createBuffer();
// 綁定緩存對象到上下文
gl.bindBuffer(gl.ARRAY_BUFFER, vertexColorBuffer);
// 向緩存區寫入數據
gl.bufferData(gl.ARRAY_BUFFER, verticesColors, gl.STATIC_DRAW);

// 獲取 a_Position 變量地址
const a_Position = gl.getAttribLocation(gl.program, "a_Position");
const a_Color = gl.getAttribLocation(gl.program, "a_Color");
const u_OrthoMatrix = gl.getUniformLocation(gl.program, "u_OrthoMatrix");

let near = 1;
let far = -1;

// 初次渲染
render();
window.addEventListener("keydown", (event) => {
  switch (event.key) {
    case "ArrowUp":
      near += 0.1;
      far += 0.1;
      break;
    case "ArrowDown":
      near -= 0.1;
      far -= 0.1;
      break;
  }
  near = Math.round(near * 10) / 10; // 消除浮點數誤差
  far = Math.round(far * 10) / 10;

  render();
});

function render() {
  infoDiv.innerHTML = `Near: ${near}, Far: ${far}`;
  gl.vertexAttribPointer(a_Position, 3, gl.FLOAT, false, SIZE * 6, 0);
  gl.enableVertexAttribArray(a_Position);

  gl.vertexAttribPointer(a_Color, 3, gl.FLOAT, false, SIZE * 6, SIZE * 3);
  gl.enableVertexAttribArray(a_Color);

  /****** 正射投影 ******/
  // prettier-ignore
  const orthoMatrix = createOrthoMatrix(
    // 左右上下近遠
    -1, 1, -1, 1, near, far
  )

  gl.uniformMatrix4fv(u_OrthoMatrix, false, orthoMatrix);
  /*** 繪制 ***/
  // 清空畫布,并指定顏色
  gl.clearColor(0, 0, 0, 1);
  gl.clear(gl.COLOR_BUFFER_BIT);
  // 繪制三角形
  gl.drawArrays(gl.TRIANGLES, 0, 6);
}

/********* 構造正射投影 *********/
function createOrthoMatrix(left, right, bottom, top, near, far) {
  const width = right - left;
  const height = top - bottom;
  const depth = far - near;

  // prettier-ignore
  return new Float32Array([
    2 / width, 0, 0, 0,
    0, 2 / height, 0, 0,
    0, 0, -2 / depth, 0,
    -(right + left) / width, -(top + bottom) / height, -(far + near) / depth, 1
  ]);
}

線上體驗 demo:

https://codesandbox.io/s/f1q0ct?file=/index.js。

回到開頭

回到開頭,我們在使用視圖矩陣的時候,修改了模型的頂點坐標,這個坐標容易跑到可視空間外,這就是上面三角形出現殘缺的問題。

我們來看看到底發生了什么事。

從表現上看,根據前面我們學到的知識,應該是左下角的點超出了 -1 到 1 的范圍。

我們確認一下,用計算出來的視圖矩陣乘以左下角點 (-0.2, -0.2, 0, 1):

圖片

矩陣運算示意圖用 Matrix Calculator 網頁工具生成。

我們只要加個正視投影矩陣,并將 near 設置為大于 1.04946 的值即可繪制一個完整的三角形啦。

const orthoMatrix = createOrthoMatrix(
  -1, 1, -1, 1, 1.05, -1 
)

這個 near 再小一丟丟就會導致殘缺,讀者可以去 demo 中修改代碼驗證。

線上體驗 demo:

https://codesandbox.io/s/6i9n2y。

責任編輯:姜華 來源: 前端西瓜哥
相關推薦

2023-05-04 08:48:42

WebGL復合矩陣

2023-04-26 07:42:16

WebGL圖元的類型

2023-06-26 15:14:19

WebGL紋理對象學習

2023-04-12 07:46:24

JavaScriptWebGL

2023-03-29 07:31:09

WebGL坐標系

2023-04-13 07:45:15

WebGL片元著色器

2023-05-16 07:44:03

紋理映射WebGL

2023-05-31 20:10:03

WebGL繪制立方體

2023-04-11 07:48:32

WebGLCanvas

2023-05-08 07:29:48

WebGL視圖矩陣

2023-04-27 08:27:29

WebGL變形矩陣

2023-04-17 09:01:01

WebGL繪制三角形

2022-11-29 16:35:02

Tetris鴻蒙

2022-12-02 14:20:09

Tetris鴻蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發畫布功能

2022-08-19 19:02:20

開源鴻蒙操作系統

2023-05-06 07:23:57

2023-11-13 22:27:53

Mapping數據庫

2023-02-28 07:28:50

Spritepixijs
點贊
收藏

51CTO技術棧公眾號

色婷婷国产精品| kk眼镜猥琐国模调教系列一区二区| 一本色道久久综合狠狠躁篇怎么玩 | 精品久久久久久久无码| 免费观看久久久久| 成人网在线播放| 国产精品久久999| a级片在线观看免费| 天堂在线精品| 欧美一区二区在线免费观看| 自拍日韩亚洲一区在线| 欧美成人精品一区二区男人看| 国产成人8x视频一区二区| 日本一欧美一欧美一亚洲视频| 一区二区三区四区五区| 亚州精品视频| 精品少妇一区二区三区视频免付费| 欧美视频免费播放| 欧美videossex| 国产精品免费免费| 欧美精品免费观看二区| 亚洲av无码专区在线| 轻轻草成人在线| 91精品国产高清自在线| 色婷婷在线视频观看| 成人精品中文字幕| 亚洲美女自拍视频| 国产精品一区二区无码对白| a一区二区三区亚洲| 色婷婷国产精品| 成人在线免费观看av| 污网站在线免费看| 亚洲色大成网站www久久九九| 日本一区美女| 欧美偷拍视频| 成人v精品蜜桃久久一区| 91老司机在线| 亚洲一卡二卡在线观看| 日韩精品一二区| 奇米成人av国产一区二区三区| 久久久久久久中文字幕| 久久久国产精品| 中文字幕精品国产| 精品人妻中文无码av在线| 亚洲丝袜啪啪| 亚洲欧美日韩一区二区三区在线| 丰满大乳奶做爰ⅹxx视频| 国产成人夜色高潮福利影视| 日韩视频免费观看高清完整版在线观看| 欧美男女交配视频| 成人性片免费| 欧美精品少妇一区二区三区| 激情五月婷婷基地| 四虎影视成人精品国库在线观看| 欧美视频日韩视频| 在线黄色免费观看| 97成人超碰| 欧美日本韩国一区| 日韩av一卡二卡三卡| 99视频这里有精品| 日韩欧美在线123| 国产麻豆剧传媒精品国产| 亚洲一区二区三区四区电影| 精品国产伦一区二区三区观看体验| 妖精视频在线观看| 国内精品偷拍| 日韩精品视频中文在线观看| 一级片视频免费看| 99精品电影| 免费91麻豆精品国产自产在线观看| 欧美黑吊大战白妞| 亚洲理伦在线| 国产精品88a∨| 91tv国产成人福利| 国产精品夜夜嗨| 精品在线一区| 都市激情一区| 亚洲精品视频在线观看网站| 亚洲 自拍 另类小说综合图区| 韩日毛片在线观看| 欧美亚洲动漫精品| 精品人妻一区二区乱码| 亚洲第一论坛sis| 最近中文字幕2019免费| 欧美xxxx黑人xyx性爽| 99热这里只有精品8| 国产精品99久久久久久久久| 99久久亚洲精品日本无码| 国产不卡视频在线播放| 蜜桃传媒视频麻豆一区| 日本在线观看网站| 亚洲成人精品影院| 999精品视频在线| 136福利精品导航| 亚洲性猛交xxxxwww| 国产高清在线免费观看| 日本在线不卡视频| 成人在线观看av| www.中文字幕久久久| 亚洲在线一区二区三区| 激情五月婷婷久久| 国产成人高清精品免费5388| 中文字幕亚洲字幕| 久久午夜免费视频| 国产又黄又大久久| 欧美亚州在线观看| 国产高清在线a视频大全| 在线观看免费亚洲| 无码一区二区精品| 亚洲草久电影| 国产精品第100页| 亚洲av片在线观看| 亚洲精品少妇30p| 777视频在线| 午夜精品福利影院| 欧美精品成人91久久久久久久| 中文字幕乱码中文字幕| av男人天堂一区| 久久香蕉视频网站| 制服诱惑亚洲| 精品福利在线导航| 看片网站在线观看| 久久草av在线| 视频一区国产精品| 韩国主播福利视频一区二区三区| 欧美一级淫片007| 日韩一卡二卡在线观看| 日韩高清不卡在线| 欧美日韩亚洲免费| 在线天堂资源www在线污| 精品国产一区二区在线观看| 永久免费看片直接| 久久精品国产99国产| 日韩精品伦理第一区| 蜜桃视频在线观看免费视频| 欧美va日韩va| 久久精品国产亚洲av高清色欲| 国产在线一区观看| 男女啪啪的视频| 国产精品欧美一区二区三区不卡| 中文字幕综合一区| 怡红院男人的天堂| 国产精品久久久爽爽爽麻豆色哟哟 | 特级西西人体wwwww| 亚洲国产日本| 国产亚洲精品久久飘花| av资源网在线播放| 日韩av一区在线| 在线观看亚洲欧美| 久久亚洲捆绑美女| 超碰网在线观看| 精品大片一区二区| 国产精品老女人视频| 三区四区电影在线观看| 欧美日韩国产一级片| 蜜臀久久精品久久久用户群体| 国产一区二区三区免费播放| 日韩视频 中文字幕| 成人午夜三级| 欧美专区中文字幕| 狠狠狠综合7777久夜色撩人| 在线视频一区二区三区| 8x拔播拔播x8国产精品| 99久久精品国产成人一区二区| 亚洲欧美另类小说| 激情成人在线观看| 午夜精品久久| 精品午夜一区二区三区| 香蕉视频亚洲一级| 最近中文字幕日韩精品 | 美女脱光内衣内裤视频久久影院| 一本一本久久a久久精品综合妖精| 国产福利一区二区三区在线播放| 日韩三级成人av网| 亚洲黄色精品视频| 欧美小视频在线| 日本黄区免费视频观看| 国产精品一色哟哟哟| 男女激情免费视频| 精品国产美女| 444亚洲人体| а√天堂8资源在线| 亚洲男人的天堂在线播放| 怡红院男人的天堂| 一区二区三区欧美激情| 国产精品jizz| 久久福利视频一区二区| 欧洲精品一区二区三区久久| 国产日产一区| 亚洲已满18点击进入在线看片| av资源网在线播放| 综合欧美国产视频二区| 男人天堂综合网| 欧洲国内综合视频| 国产第一页第二页| 国产情人综合久久777777| 色偷偷中文字幕| 欧美专区18| 日韩精品手机在线观看| 国产videos久久| 高清不卡一区二区三区| 日韩高清中文字幕一区二区| 欧美丰满少妇xxxxx| 国产原创av在线| 亚洲国产精品久久91精品| 伊人影院中文字幕| 欧美日韩日本国产| 日本少妇高清视频| 中文字幕va一区二区三区| 性色av蜜臀av浪潮av老女人 | 欧美视频在线观看 亚洲欧| 你懂得在线观看| 久久综合久久久久88| 日本少妇xxxx软件| 久久99精品国产麻豆婷婷| 日本wwww视频| 亚洲黄色在线| 男插女免费视频| 波多野结衣在线播放一区| 国产午夜精品一区| 一区中文字幕| 91在线观看免费高清| 影视一区二区三区| 欧美在线视频网| av老司机在线观看| 九九九久久国产免费| 麻豆影视国产在线观看| 在线观看日韩av| 日本福利片在线| 欧美tk丨vk视频| 亚洲国产精品国自产拍久久| 91麻豆精品国产91久久久久久| 成人免费一区二区三区| 欧美三级xxx| 天堂网av手机版| 午夜在线电影亚洲一区| 国产亚洲精品女人久久久久久| 日韩毛片在线免费观看| 国产人与禽zoz0性伦| 中文字幕免费在线观看视频一区| b站大片免费直播| 久久网这里都是精品| 三级黄色片网站| 久久综合中文字幕| 中文字幕一区二区久久人妻网站| 91在线精品一区二区三区| 无码任你躁久久久久久老妇| 不卡欧美aaaaa| 日本少妇毛茸茸| 99久久99久久免费精品蜜臀| 欧美肉大捧一进一出免费视频| 白白色 亚洲乱淫| 少妇一级淫片免费放播放| a美女胸又www黄视频久久| 一级欧美一级日韩片| 91色综合久久久久婷婷| 免费在线观看你懂的| 国产欧美日韩在线视频| 亚洲欧美另类日本| 亚洲精品乱码久久久久久久久 | 丝袜美腿av在线| 欧美激情xxxx| 欧美极品videos大乳护士| 清纯唯美亚洲激情| 激情欧美一区二区三区黑长吊| 成人激情春色网| 欧美专区一区| 久久综合九色综合网站| 欧美偷拍自拍| 国产奶头好大揉着好爽视频| 国产精品magnet| 成熟丰满熟妇高潮xxxxx视频| 久久一二三区| 簧片在线免费看| 国产不卡视频一区| 中文字字幕码一二三区| 国产精品二区一区二区aⅴ污介绍| 欧美日韩亚洲国产另类| 欧美日韩性视频| 91福利在线观看视频| 日韩女优电影在线观看| 瑟瑟在线观看| xx视频.9999.com| 国产中文在线播放| 国产一区香蕉久久| 国产精品18hdxxxⅹ在线| 欧美亚洲另类久久综合| 影视亚洲一区二区三区| 日韩免费一级视频| 久久电影国产免费久久电影| 一起草在线视频| 成人欧美一区二区三区黑人麻豆 | 亚洲精品一级| 午夜久久福利视频| k8久久久一区二区三区| 开心激情五月网| 婷婷中文字幕一区三区| 在线视频 91| 亚洲精品国产福利| 2024最新电影免费在线观看| 欧美在线观看网站| 亚洲1区在线观看| 亚洲欧洲一二三| 国产精品一页| 国产精品99久久久精品无码| 国产精品午夜在线观看| 草久视频在线观看| 欧美成人高清电影在线| 思思99re6国产在线播放| 欧美激情影音先锋| 伊人久久大香伊蕉在人线观看热v| 久久精品一二三区| 欧美国产激情| 日本高清一区二区视频| 久久婷婷国产综合国色天香| 久久黄色免费网站| 欧美一区二区私人影院日本| 国产私拍精品| 欧洲中文字幕国产精品| 久久激情av| 乱熟女高潮一区二区在线| 久久精品72免费观看| 日本少妇xxxxx| 欧美性猛交xxxxx水多| 日韩有码第一页| 欧美夫妻性视频| 蜜桃精品视频| 午夜探花在线观看| 精品夜夜嗨av一区二区三区| 国产又粗又长又硬| 欧美在线观看禁18| 伦理片一区二区三区| 日韩av电影在线网| 欧美综合自拍| 日本不卡在线观看视频| 97精品国产露脸对白| 日本污视频在线观看| 精品蜜桃在线看| 成人免费高清观看| 99高清视频有精品视频| 欧美日本不卡| 中文字幕1区2区| 亚洲电影激情视频网站| 亚洲第一色视频| 午夜精品一区二区三区视频免费看| 试看120秒一区二区三区| 亚洲中文字幕无码一区二区三区| 狠狠色狠狠色综合| 日本老熟俱乐部h0930| 日韩一区二区在线观看视频| 超碰porn在线| 国产91一区二区三区| 极品中文字幕一区| av网页在线观看| 一本大道久久精品懂色aⅴ| 撸视在线观看免费视频| 国产精品网站视频| 国产精品久久久久蜜臀| 日本中文字幕精品| 亚洲成人免费观看| 极品美乳网红视频免费在线观看| 国产精品999999| 99国产精品一区二区| 午夜性福利视频| 午夜伊人狠狠久久| 国产香蕉视频在线看| 国产精品专区一| 欧美激情第10页| 亚洲熟女乱综合一区二区三区 | 国产草草影院ccyycom| 国内精品久久久久| 国产欧美一区| 黄色片子免费看| 精品久久久一区二区| 国产中文在线| 91九色蝌蚪成人| 午夜亚洲性色视频| 制服丨自拍丨欧美丨动漫丨| 日韩欧美一级在线播放| 国模套图日韩精品一区二区| 中文字幕中文字幕一区三区| 成人丝袜高跟foot| 精品一区二区无码| 大胆人体色综合| 在线日韩一区| 国产999免费视频| 日韩欧美成人免费视频| 国产人成网在线播放va免费| 国内一区二区三区在线视频| 蜜桃久久av一区| 国产大片中文字幕| 中文字幕欧美视频在线| 极品一区美女高清| 视频二区在线播放| 欧美日韩国产在线| 国产原创视频在线观看| 奇米影视首页 狠狠色丁香婷婷久久综合| 久久av老司机精品网站导航| 奇米影视第四色777| 精品国产一区二区三区在线观看|