青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

歲月流轉(zhuǎn),往昔空明

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  118 Posts :: 3 Stories :: 413 Comments :: 0 Trackbacks

#

上次用boost.python的時候boost還是1.33的時候。

那個時候剛剛開始看shader的東西,就用boost.python做了用python做shader語言的演示。
其實當時看boost.python完全是半懂不懂的。
這段時間找了個C的數(shù)值庫,要Python的接口,Python For C的Interface又懶得使用,還是用boost.python把一些我要的功能給封裝出來好了。
結(jié)果一看才發(fā)現(xiàn)對Boost.Python的理解好了不好。

看來人都是在慢慢進步的。。。哈哈。

posted @ 2008-07-14 19:05 空明流轉(zhuǎn) 閱讀(572) | 評論 (0)編輯 收藏


以前看D3D的時候,就發(fā)現(xiàn)骨骼動畫是個有點難以掌握的東西。
但是也可以說,骨骼動畫是3D齊次空間變換的集大成者,掌握了骨骼動畫,差不多3D空間變換你也就掌握了。
其他所有的層級變換,基本上都不會脫離骨骼動畫需要你了解的東西。

網(wǎng)上骨骼動畫的demo多如牛毛,我空間想象能力不行,看過無數(shù)資料都不大明白骨骼怎么轉(zhuǎn),皮膚怎么蒙。況且那些基于DX、基于GL的代碼都長的不行,難看的明白。

前兩天vczh搞了個C#的弱智版的2D物理Engine,我今天就搞個C#和GDIPlus的低能版骨骼變換。雖然是2D的,但是原理和實現(xiàn)基本和3D的完全一樣。希望這已經(jīng)簡單到不能再簡單的代碼能幫助大家搞明白骨骼動畫是咋回事。

代碼框架上都有注釋了,矩陣使用的是Sharp3D的數(shù)學庫,已經(jīng)在包中了。不過也就用了矩陣乘法和矩陣-矢量乘法,還有一些矢量加減法。

源代碼在此下載
。

2樓的回帖給了一個地址,是關(guān)于骨骼運動變換的數(shù)學推理和理論解釋,還討論了左右手系的問題。理論上有問題的親們可以參照此篇文章。

截圖:

骨骼的初始狀態(tài)


變換后的骨骼


加了一圈子頂點,這個雖然是2D的,但也是貨真價實的蒙皮哈。

posted @ 2008-06-07 19:35 空明流轉(zhuǎn) 閱讀(8528) | 評論 (9)編輯 收藏

 

 1 for(int i=0; i<numBS; i++)
 2 {
 3   uint offset = bsPitch * bsOffsets.Load(i);
 4   float weight = bsWeights.Load(i);
 5   dp = bsVertices.Load(offset + 3*vertexID+0);
 6   dn = bsVertices.Load(offset + 3*vertexID+1);
 7   dt = bsVertices.Load(offset + 3*vertexID+2);
 8 
 9   pos += dp * weight;
10   normal += dn * weight;
11   tangent += dt * weight;
12 }
13 



Blend Shapes 放在一個固定的數(shù)組bsVertices中,
按照

S0V0, S0V1 ... S0VN, S1V0 ... SMVN
的形式存放.

numBS說明了有多少個BS被混合,也就是slots的大小;
bsPitch為SxV0 - SxVN的長度;
bsOffsets[i] 代表第i個slot使用了哪個BS.
posted @ 2008-05-21 10:58 空明流轉(zhuǎn) 閱讀(462) | 評論 (0)編輯 收藏

最近開始抽空在看GPU Gems 3了。本來想挑幾篇全文翻譯,但是無奈自己英語水平薄弱,同時最近老板逼得緊,也沒有那么多時間,于是便準備以導(dǎo)讀的形式,將文章的主干部分翻譯出來,幫助英文不好的筒子們。
導(dǎo)讀也是我自己讀書的總結(jié)。文章的核心內(nèi)容一定會提及.圖和源碼,通常我會標注上對應(yīng)的圖書上的figure和list,各位自行參考。基本維持原文的篇章段落,但是一般不會逐字句的考究。
至于能有多少篇,我倒是不能保證。不過我所用的電子版是那個26M的chm,我讀的時候會把它翻成PDF并加注,如果有筒子需要我注釋后的pdf,可以與我聯(lián)系:

mail: wuye9036   _AAAAATTTTT_ google _dotdotdotdotdot_com

--------------------------------------------------------------------------------

Chapter I 運用GPU構(gòu)造復(fù)雜的過程化地形
1.1 Introduction
過程化地形的應(yīng)用已經(jīng)有不少的歷史了,Game Programming Gems 2上就已經(jīng)有了不少成熟的過程化地形的方法,比方說隨機斷層、基于噪聲的、基于分形理論的、中點分割加擾動的。
不過這些算法在現(xiàn)代硬件上都時有缺陷的,特別是針對規(guī)模很大的地形,要么只能在CPU上實時生成,要么就得預(yù)存儲起來,但是不管怎么說都面臨著很大的資源開銷;其次這些算法都是只能生成有些起伏的平面,沒辦法表現(xiàn)山洞、巖石凸角一類的3D特征。本文運用DX10的Geometry Shader與Stream Output,彌補了上述兩個缺陷。

1.2 移動立方體與密度函數(shù)
要解決3D的地形特征,首先要解決3D地形特征的表達問題。文中將空間劃分為多個Blocks,每個Block代表了世界坐標系中1*1*1大小的空間。每個Block由一個3D紋理來表達。由于使用了過程化的方法,每個Block可以在運行的時候動態(tài)生成,這樣只需要保留那些能看得見的blocks,從而解決了存儲問題。
概念上,一個3D的地形可以由一個密度函數(shù)來表達。對于每個空間中的點(x, y, z),都有唯一對應(yīng)的密度值。我們假設(shè),對于任意一個空間中的點,如果點在地形內(nèi)部/巖石內(nèi)部當且僅當點上的密度值大于0。那么小于0的點,自然就在地形之外,如在空氣中,水中等等。而巖石表面上的點密度剛好等于0。
那么自然,這些巖石表面上密度值等于0的點,就是我們要繪制的“表面”。
在將空間劃分為Block后,還要將每個block進一步細分為多個voxel(體素)。我們假定體素內(nèi)密度變化時連續(xù)的。那么很顯然,如果一個體素的頂點上密度有正有負,那么必然里面會有一個(也有可能是多個)0值面。問題就轉(zhuǎn)化為,如何根據(jù)體素各個頂點的密度值,求出這個體素內(nèi)的0值面。如果再把這個假設(shè)限定的嚴格一點,如果體素內(nèi)密度變化是線性的,那么這些面可以由0-5個三角形來表示;求得這些三角形的方法,被稱為Marching Cube算法。
很顯然,有多少個三角形,每個三角形的頂點落在哪條邊上,是由八個頂點的密度的正負值所決定的,而值的相對大小則決定了三角形的頂點在邊上靠近那個頂點。那么也就是說,一個體素內(nèi)0值面的分布共有2^8中情況。如果頂點密度為負,那么標記為0,頂點密度為正則標記為1,則八個頂點的情況可以由一個Byte來表示。

圖1-3

如果這個字節(jié)的值為0或者為255,那么說明所有的頂點都為正或為負,那么說明體素中并沒有地表面。Martin Frank為剩下的254中情況建立了一個查找表。其中基本的情形有14種,其余的均可由這些基本情況的對稱或旋轉(zhuǎn)求得。

圖1-4

當確定了三角形的三個頂點分布于哪些邊上后,便可用插值的方法求出所在位置。頂點將位于0值點處。例如,一條邊AB上有一個0值點P,如果A的密度0.3,B的密度-0.1,那么PB的長度是PA長度的三倍。

1.2.2 查找表
上文已經(jīng)提到了如何通過體素角點的密度值,就會知道會生成哪些多邊形;這些多邊形的頂點落在哪些邊上。
接下來,我們將用討論這些理論如何在GPU上實現(xiàn)。
首先我們建立一張查找表
int case_to_numpolys[256];
其中每種情況能產(chǎn)生多少個三角形。
第二張查找表,
int3 edge_connect_list[256][5];
這張表保存了每種情況對應(yīng)的5個三角形。并且我們將一個體素中的12條邊按照0-11編號(圖 1-5),則查找返回的返回的int3指出了,每個三角形的三個頂點分別落在哪條邊上。

圖 1-5 Case 193 的0值多邊形情況

下面的例子很好的說明了這一點。
我們以case 193為例。193總共有3個三角形,那么case_to_numploys[193] = 3,其次,edge_connect_list[193][]返回這樣的結(jié)果:

int3 edge_connect_list[193][0]: 11 5 10
int3 edge_connect_list[193][1]: 11 7 5
int3 edge_connect_list[193][2]: 8 3 0
int3 edge_connect_list[193][3]: -1 -1 -1
int3 edge_connect_list[193][4]: -1 -1 -1

Geometry Shader在查找了這兩張表的信息之后,并計算出頂點在邊上的具體位置,便會返回3個多邊形列表所需要的9個頂點。由于創(chuàng)建Marching Cubes查找表需要很多的計算量,因此建議預(yù)先計算好并在運行前載入。該表在光盤上可以找到。

posted @ 2008-05-20 20:38 空明流轉(zhuǎn) 閱讀(2186) | 評論 (2)編輯 收藏

     摘要:
討論腳本編程與靜態(tài)語言的異同點,
總結(jié)一下近期腳本編程的心得,
吸取教訓(xùn),
并歡迎大家探討、指點。  閱讀全文
posted @ 2008-05-16 15:51 空明流轉(zhuǎn) 閱讀(2126) | 評論 (4)編輯 收藏

這個設(shè)計主要是拿來保證跨組件的時候能盡可能的保護型別安全.

我今天晚上早些時候也往SoftArt里面提交了一個type to id的實現(xiàn),使用宏和特化機制
但是這個版本的一個很大的問題就在于用起來不是很方便,每注冊一個類需要2行代碼,而且都是
#define PARAM float
#include REGTYPE()
這樣的非常規(guī)的宏用法.
但是由于它是分類實現(xiàn)的,所以可以在里面補充一些額外的功能,比如自動的具名常量的生成.

所以晚上回來的時候又用boost的mpl寫了一個原形,基本上是純模板的.注冊類只需要一行,但是宏實現(xiàn)版本中一些半自動化的特點也損失的差不多了.
回頭還是要考慮用preprocessor結(jié)合MPL,看看能不能做到兩個特點兼?zhèn)?

mingw + gcc 4.2.1下通過

#include <iostream>
#include 
<boost/smart_ptr.hpp>

#include 
<boost/mpl/vector.hpp>
#include 
<boost/mpl/find.hpp>
#include 
<boost/mpl/at.hpp>
#include 
<boost/mpl/size.hpp>
#include 
<boost/mpl/if.hpp>
#include 
<boost/mpl/less.hpp>
#include 
<boost/mpl/int.hpp>
#include 
<boost/mpl/less_equal.hpp>

#include 
<boost/type_traits/is_same.hpp>

using namespace std;

struct empty{};

#define BEGIN_REGISTER_TYPE() typedef boost::mpl::vector<empty
#define REGISTER_TYPE(type) ,type
#define END_REGISTER_TYPE() > typelst;

namespace shader_constant
{
    BEGIN_REGISTER_TYPE()
        REGISTER_TYPE(
int)
        REGISTER_TYPE(
float)
        REGISTER_TYPE(
bool)
    END_REGISTER_TYPE();

    
static const int size_of_typelst = boost::mpl::size<typelst>::value;
    typedef boost::mpl::int_
<size_of_typelst> size_of_typelst_t;

    template
<class T>
    
struct type2id{
        typedef typename boost::mpl::find
<typelst, T>::type iter;
        
static const int id =
            boost::mpl::if_
<
                boost::is_same
<boost::mpl::end<typelst>::type, iter>,
                boost::mpl::int_
<0>,
                typename iter::pos
            
>::type::value;
    }
;

    template
<int id>
    
struct id2type{
        typedef boost::mpl::int_
<id> int_id;
        typedef boost::mpl::int_
<0> int_0;

        
//type = (0 < id && id <= size) ? typelst[id] : empty;
        typedef typename boost::mpl::if_<
            boost::mpl::and_
<
                boost::mpl::less
<int_0, int_id >,
                boost::mpl::less_equal
<int_id, boost::mpl::size<typelst>::type >
            
>,
            typename boost::mpl::at
<typelst, int_id>::type,
            empty
        
>::type type;
    }
;
}


using namespace shader_constant;

typedef 
void (*Assignments)(void* p1, void* p2);

template
<class T>
void AssignImpl(void* p1, void* p2)
{
    cout 
<< typeid(T).name() << endl;
    
*(T*)p1 = *(T*)p2;
}


template 
<> void AssignImpl<empty>(void* p1, void* p2)
{
    cout 
<< "error type!" << endl;
}


 Assignments assigns[size_of_typelst
+1];

template 
<int i>
struct assigns_initializer
{
    assigns_initializer
<i-1> m;
    assigns_initializer()
{
        assigns[i] 
= &AssignImpl<typename id2type<i>::type >;
        }

}
;

template 
<>
struct assigns_initializer<-1>
{
    assigns_initializer()
{
        }

}
;

static assigns_initializer<size_of_typelst> ai;

typedef 
double T;
int main()
{
    T i1(T(
0));
    T i2(T(
10));
    assigns[type2id
<T>::id](&i1, &i2);
    cout 
<< i1;
    system(
"pause");
    
return 0;
}

posted @ 2008-03-08 00:55 空明流轉(zhuǎn) 閱讀(1324) | 評論 (4)編輯 收藏

2月22日更新:
修改了項目設(shè)置(大換血。。。)。昨天下過的最好重新check out。

2月21日更新:

已經(jīng)將SoftArt整體放置到SF的SVN上了。

SVN地址: https://softart.svn.sourceforge/svnroot/softart/prealpha
svn co https://softart.svn.sourceforge/svnroot/softart/prealpha softart

由于目前的渲染器離成品還很遙遠,所以就沒有以Release的形式放出。Version 6 中,CartoonDemo大家可以自行從solution里面移除;EFLIB需要項目地址上下載Release,然后在VC環(huán)境中另行設(shè)置,給大家?guī)淼牟槐闵畋砬敢狻?br>
2005 SP1 下通過(有點bug)

感謝亨德列克和叛逆者兩位前輩的無私指點(不管哪一方面都是,從技術(shù)到態(tài)度到Fix Defects到New Ideas),非常感謝~~~拜~~~


該軟件渲染器名字就叫SoftArt,本來準備叫做ColorfulSnail(哈,因為Debug的時候它的運行速度是在是太慢了),但是無奈Snail已經(jīng)被人注冊過了,所以就還是叫這個名字了。
每個開發(fā)階段我都會有一個項目代號,目前的這個還是prealpha階段,所以就叫prealpha好了。

今天放上去的是支持庫Essential Functions Library,大家可以去我的項目地址下載。

https://sourceforge.net/projects/softart/

也叫Efl Functions Library,提供了一些基本的數(shù)學工具(比方說基本的向量和矩陣的運算)。項目的主體代碼我需要將接口整理完畢以后再行發(fā)布。目前僅https://softart.svn.sourceforge.net/svnroot/softart/prealpha 支持VS2005編譯器,很快會考慮2008和GCC 4.2 or later。

希望大家有什么意見和建議盡管提出,我一定會盡可能將大家的想法加入到我的TODO LIST中。

posted @ 2008-02-20 18:44 空明流轉(zhuǎn) 閱讀(2029) | 評論 (3)編輯 收藏

     摘要: 總結(jié)了我在以往項目中使用設(shè)計模式的經(jīng)驗;
我閱讀《設(shè)計模式》的心得;
討論一些在閱讀時產(chǎn)生,實踐中解決的困惑,為設(shè)計模式新手提供一條可以參考的學習路線;
并希望與老手們一同探討、交換:
設(shè)計模式在實際中使用中的經(jīng)驗與教訓(xùn);關(guān)于拓展現(xiàn)有設(shè)計模式、聯(lián)合使用多個設(shè)計模式的案例和思路。  閱讀全文
posted @ 2008-02-17 15:11 空明流轉(zhuǎn) 閱讀(1807) | 評論 (0)編輯 收藏

我也不知道這個能不能算是2005的bug吧,反正我是想不太明白。
今天在對我的pool使用policy的設(shè)計的時候發(fā)現(xiàn)的。

//前面代碼省略

struct single_thread
{
  template
<class T> struct thread_safe_type
  {
     typedef boost::add_volatile
<T> result;
  }
};

template
<class ThreadingModel>
struct pool : private ThreadingModel
{
  typedef typename ThreadingModel::thread_safe_type
<size_t>::result index_t;//其實有沒有typename都一樣。
 
//other public members

private:
 index_t first_free_;
};
看起來這段代碼是完全能正常工作的,是吧。可是很不幸的是這代碼在2005上沒法正常通過。
解決的方法很簡單:
typedef ThreadingModel TM;
typedef TM::thread_safe_type<size_t>::result index_t;
就可以大功告成了。不知道是不是typename的問題。但是從編譯器的出錯提示來看并不能和簡單的typename的問題混為一談。另外,如果這個thread_safe_type不是模板而只是一個普通的struct或者typedef的話,也是沒有這個問題的。

如果有知道這個問題出現(xiàn)的根本原因的,請指教。

posted @ 2008-02-16 21:45 空明流轉(zhuǎn) 閱讀(1858) | 評論 (6)編輯 收藏


今天把軟渲器前后跑了一下,排掉了z buffer的一個很惡心的bug后,終于順暢了。
雖然前前后后的球啊、方盒子啊、平面啊測試了不少,但是差不多像Demo的這還是頭一個。
由于不支持復(fù)雜的ddx、ddy(ps僅僅支持求輸入寄存器的ddx ddy),因此ps30的很多東西就沒法做了。

一開始實現(xiàn)的時候沒考慮GS,所以也就沒有ps40可言。
不過對于軟件渲染器來說,沒有GS,以及沒有DX11的TS也算不得什么硬傷。

博客的文章上,這之前還缺設(shè)計模式的最后一個話題沒講完。
等結(jié)束了尾巴話題以后,就簡單的說一下軟件渲染器的問題。
其實沒有什么太大的難度,代碼量也不大,核心庫也就8K行代碼。

源代碼由于還比較混亂(主要是很多地方都是雙向),所以還沒有放出來。準備在我放假前放到sourceforge上,這也是我答應(yīng)了叛兄的。
然后可能要在他的幫助下把SR規(guī)范一下后作為KlayGE的software renderer plug-in用。

這是一個勾邊的Demo。原理很簡單,先正面渲染一次,再沿法線拉伸一下模型,背面渲染一次。
效果圖。

光擺圖我也不敢放首頁啊……
主要是征詢一下,這段時間我做什么Demo比較好(如果有太復(fù)雜場景的就算了,因為軟件渲染器速度有限,但是可以有比較復(fù)雜的效果)
還有個就是,征詢一下SF上project的名字。。。
posted @ 2007-12-30 22:28 空明流轉(zhuǎn) 閱讀(1052) | 評論 (0)編輯 收藏

僅列出標題
共12頁: First 2 3 4 5 6 7 8 9 10 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩视频免费看| 性18欧美另类| 欧美日韩一区二区三区视频| 亚洲理伦在线| 一本大道久久a久久精二百| 国产精品电影在线观看| 欧美亚洲专区| 久久午夜精品| 亚洲美女中文字幕| 亚洲最新中文字幕| 国产亚洲激情在线| 欧美成人亚洲| 欧美精品激情在线观看| 亚洲深夜福利视频| 午夜久久久久久| 在线国产精品播放| 亚洲激精日韩激精欧美精品| 欧美日韩一区二区高清| 欧美一区二区精品久久911| 欧美在线观看天堂一区二区三区| 亚洲大片精品永久免费| 日韩午夜av电影| 国产真实乱子伦精品视频| 男人的天堂亚洲在线| 欧美另类人妖| 久久久国产精品一区| 欧美超级免费视 在线| 亚洲自拍偷拍视频| 久久久精彩视频| 亚洲一区二区欧美日韩| 久久国产手机看片| 亚洲视频电影在线| 久久九九精品| 性欧美videos另类喷潮| 裸体歌舞表演一区二区| 亚洲免费网址| 欧美高清视频一区二区三区在线观看 | 亚洲免费观看高清在线观看 | 国产一二精品视频| 亚洲国产国产亚洲一二三| 国产麻豆成人精品| 亚洲每日更新| 亚洲国产合集| 欧美中文字幕在线播放| 亚洲欧美成人精品| 欧美国产日韩一二三区| 久久久久久**毛片大全| 国产精品美女诱惑| 亚洲人成精品久久久久| 伊人久久久大香线蕉综合直播| 一区二区三区你懂的| 91久久精品日日躁夜夜躁欧美| 性欧美办公室18xxxxhd| 香蕉亚洲视频| 国产精品二区二区三区| 99精品国产一区二区青青牛奶| 亚洲国产精品综合| 久久精品国产91精品亚洲| 亚洲欧美日韩中文在线制服| 欧美日本国产在线| 亚洲人成网在线播放| 亚洲国产精品第一区二区| 久久精品久久99精品久久| 欧美专区在线观看一区| 国产精品免费aⅴ片在线观看| 日韩午夜在线| 亚洲免费影院| 国产精品日韩一区| 亚洲欧美国产三级| 久久se精品一区二区| 国产精品久久久久9999吃药| 一本久久综合| 午夜精品一区二区在线观看 | 欧美xxx成人| 欧美国产丝袜视频| 亚洲乱码国产乱码精品精可以看| 玖玖综合伊人| 亚洲高清不卡在线| 99成人在线| 欧美午夜电影一区| 午夜精品久久久久久久蜜桃app| 亚洲一二三区精品| 国产欧美精品日韩区二区麻豆天美| 亚洲一区日韩| 久久婷婷久久| 亚洲经典视频在线观看| 欧美老女人xx| 亚洲欧美视频在线观看| 嫩草成人www欧美| 亚洲乱码视频| 国产精品亚洲一区二区三区在线| 欧美一区二区女人| 免费在线欧美视频| aa成人免费视频| 国产精品一页| 美女尤物久久精品| 亚洲午夜av在线| 久久亚洲综合网| 在线视频精品| 国产在线拍偷自揄拍精品| 免费亚洲电影在线| 在线亚洲高清视频| 免费欧美日韩| 亚洲一区二区在线观看视频| 国产原创一区二区| 欧美日韩一区二区三区四区在线观看 | 亚洲欧美www| 在线精品一区二区| 国产精品久久久| 久久免费国产| 亚洲一区二区三区四区中文| 欧美福利专区| 久久av在线看| 在线视频欧美精品| 在线观看成人av| 国产精品色一区二区三区| 免费看成人av| 欧美在线观看网站| 在线视频一区观看| 亚洲日本国产| 欧美成年人视频网站| 久久精品国产精品| 亚洲视频在线播放| 亚洲国产精品电影在线观看| 国产欧美一区二区精品秋霞影院| 欧美日韩国产亚洲一区 | 91久久久国产精品| 久久夜色精品国产欧美乱极品 | 好吊妞这里只有精品| 国产精品av免费在线观看| 欧美成人免费全部观看天天性色| 欧美一级片在线播放| 亚洲在线成人精品| 99精品欧美一区二区三区综合在线 | 激情欧美日韩一区| 国产日韩亚洲欧美精品| 国产精品wwwwww| 欧美日本在线看| 欧美激情综合| 免费久久久一本精品久久区| 久久久夜夜夜| 看欧美日韩国产| 狼狼综合久久久久综合网 | 欧美激情影院| 亚洲高清电影| 亚洲国产高清一区| 欧美福利专区| 91久久精品日日躁夜夜躁欧美| 亚洲第一视频网站| 亚洲第一黄色网| 亚洲国产成人精品视频 | 亚洲免费一级电影| 亚洲在线电影| 久久www成人_看片免费不卡| 久久国产天堂福利天堂| 久久久久久亚洲综合影院红桃 | 久久国产精品99久久久久久老狼 | 亚洲最新在线视频| 亚洲欧美国产日韩天堂区| 亚洲欧美激情四射在线日 | 欧美国产丝袜视频| 亚洲人成人77777线观看| 亚洲免费电影在线| 亚洲午夜精品久久久久久app| 亚洲资源av| 久久精品人人做人人爽| 老司机精品视频一区二区三区| 欧美成ee人免费视频| 欧美日韩视频在线一区二区观看视频| 欧美视频一区二区三区四区| 国产欧美在线| 亚洲精品视频免费在线观看| 亚洲欧美不卡| 免费成人av| av不卡免费看| 久久国产主播精品| 欧美精品久久久久久久免费观看| 欧美午夜精品伦理| 激情欧美一区二区三区| 一本色道久久综合亚洲精品按摩| 欧美一级二区| 亚洲韩国精品一区| 欧美一区二区久久久| 欧美成人在线免费视频| 国产精品私拍pans大尺度在线| 在线精品亚洲| 午夜亚洲激情| 亚洲国产精品久久久久秋霞影院 | 欧美顶级艳妇交换群宴| 一区二区三区四区五区视频 | 日韩手机在线导航| 久久国产精品久久久| 欧美女人交a| 亚洲国产成人porn| 久久精彩视频| 99视频日韩| 欧美成人精品1314www| 国产午夜精品理论片a级探花| 9色porny自拍视频一区二区| 美国三级日本三级久久99|