??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩1234,**性色生活片久久毛片,国产日韩精品综合网站http://www.shnenglu.com/eros/探烦C++zh-cnMon, 29 Sep 2025 17:37:06 GMTMon, 29 Sep 2025 17:37:06 GMT60luabinddlua脚本中的变量http://www.shnenglu.com/eros/archive/2010/05/15/115417.html林公?/dc:creator>林公?/author>Fri, 14 May 2010 17:40:00 GMThttp://www.shnenglu.com/eros/archive/2010/05/15/115417.htmlhttp://www.shnenglu.com/eros/comments/115417.htmlhttp://www.shnenglu.com/eros/archive/2010/05/15/115417.html#Feedback0http://www.shnenglu.com/eros/comments/commentRss/115417.htmlhttp://www.shnenglu.com/eros/services/trackbacks/115417.html     刚开始用luabindQ对一些基本的使用有些了解Q记录下来以备查阅。这文章里主要讨论如何在C++中访问lua脚本中的变量Q函数?br>     假设有一个test.lua脚本Q内容如下:

 1--test.lua
 2
 3function printColor()
 4    colour = ColourValue(1111);
 5    colour:printColor();
 6end
 7
 8Config = 
 9{
10    color = ColourValue(1111),
11    count = 5,
12    fun = printColor
13
14}

     ColourValue是C++c,定义如下Q?br>
 1class ColourValue
 2{
 3public:
 4    ColourValue(float r = 1.0,
 5                float g = 1.0,
 6                float b = 1.0,
 7                float a = 1.0) : mR(r), mB(b), mG(g), mA(a)
 8    {
 9    }

10
11    void printColor()
12    {
13        cout << mR << ""
14             << mG << ""
15             << mB << ""
16             << mA << "" 
17             << endl;
18    }

19
20protected:
21    float mR;
22    float mG;
23    float mB;
24    float mA;
25}
;

     C++导出cdlua中可以见之前的一文?点这?/a>)Q就不再赘述Q假设ColourValue和它的成员函数printColor()已经导出到luaQ那么如何在C++中访问Config表中的变量呢Q这里就要用到luabind中的globals(lua_State* L)函数 ?br>
    q个函数q回的是全局表,表中包含加蝲的lua脚本中所有的变量Q下面依ơ讲解如何来获取Config表中的三个变量?br>
1// 取得全局表对象?/span>
2luabind::object global = luabind::globals(L);
    
    lua脚本中的所有元素都是放在这个全局表中的,所以可以用lua table的语法来讉K其中的元素:
1// 获取脚本中的Config表?/span>
2luabind::object configTable = global["Config"];
    
    q样Q就可以通过configTable讉KConfig表中的元素了Q?/span>
    ①访问color:
1// 讉KConfig表中的color?/span>
2ColourValue color = luabind::object_cast<ColourValue>(configTable["color"]);
     注意Q这里有一个{型动作,因ؓColorValuecdl导入到lua中,所以luabind知道如何转换Q否则,转换发生异常?br>   
    ②访问countQ?/span>
1// 讉KConfig表中count?/span>
2int count = luabind::object_cast<int>(configTable["count"]);
     有了之前的讲qͼq个应该很好理解了?/span>

     ③访问printColorQ?/span>
1// 讉KConfig表中的printColor函数?/span>
2luabind::object printColor = configTable["fun"];
     在C++代码中调用printColor有两U方法:
    
1printColor();                                      // W一U调用方法?/span>
2luabind::call_function<void>(printColor); // W二U调用方法?/span>
    注意W二U调用方法用了call_function函数的重载Ş式?br>
     如果要访问全局表中的变量,Ҏ是一LQ只不过是用globle句柄q行讉KQ这里就不再赘言?/span>

]]>
Ogre学习W记(一)http://www.shnenglu.com/eros/archive/2009/05/20/83455.html林公?/dc:creator>林公?/author>Wed, 20 May 2009 03:48:00 GMThttp://www.shnenglu.com/eros/archive/2009/05/20/83455.htmlhttp://www.shnenglu.com/eros/comments/83455.htmlhttp://www.shnenglu.com/eros/archive/2009/05/20/83455.html#Feedback0http://www.shnenglu.com/eros/comments/commentRss/83455.htmlhttp://www.shnenglu.com/eros/services/trackbacks/83455.html本系列文章部分内Ҏ源于http://ogre3d.cn 的Ogrepd教程的中文翻译版Q加上一些我自己学习时的W记?/span>

Ogre三基?br>
SceneManager 场景理?br>
    屏幕上显C的所有东襉K有场景管理器来管理。当往场景中添加物体时Q场景管理器会记录物体的位置Q当d摄像机来观察某个场景Ӟ场景理器会记录摄像机的位置。Ogre里有多种场景理?br>
Entity 实体

    一个实体是可以在场景中渲染的物体之一。可以把实体理解ZQ何一?D模型。一个机器h可以使一个实体,一条鱼可以是一个实体,大地草原可以是一个非常大的实体?span style="color: red;">灯光Q摄像机Q粒子,q告牌等不能成ؓ实体?/span>
    Ogre中你不能直接一个实体放入场景中Q而是实体与场景节点l在一Pq个场景节点则包括了实体的方位信息?br>
SceneNode 场景节点
  
    场景节点持l跟t与它绑在一L实体的方位。当你创Z一个实体时Q它直到与一个场景节点绑定后才会被渲染。同P一个场景节点也不能单独的在屏幕上显C出来,只有与一个实体绑定后才能在屏q上昄?span style="color: red;">一个场景节点可以绑定多个实体,场景节点同样可以和其他场景节点绑定,但是一个实体不能被多个场景节点l定?/span>
    每个场景理器都有一个根节点Q而场景节炚w是在根节点的基础上徏立,其位|L相对于根节点的?br>
实践

    要创Z个实体,可以调用SceneManager的createEntityҎQ?br>   
// 创徏一个实? 加蝲Athena|格?/span>
Entity
* entity1 = mSceneMgr->createEntity("athene1""athene.mesh");
    createEntity的第一个参Cؓ实体指定了一个唯一的标识符Q第二个参数表示要加载的资源名称Q在q里是一个名为athene的网格模型?br>
    我们可以个实体代表的|格模式指定一个材质:
// 讄|格材质?/span>
entity1->setMaterialName("Examples/Athene/NormalMapped");

    创徏了一个实体后Q还要创Z个场景节点与它绑定v来:
// 创徏一个子场景节点?/span>
SceneNode* node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode("athene1");
    与实体一P场景节点的名字也是唯一的,在这里是athene1?br>
    然后实体和场景节点l定Q?br>
// 实体绑定到场景节点上?/span>
node1->attachObject(entity1);
    l定之后实体׃被渲染出来,默认情况下实体会被渲染到世界坐标的原?0, 0, 0)处?br>
    要改变实体在场景中的位置Q可以用与之绑定的场景节点的setPositionҎQ?br>
node1->setPosition(3000);
    q样场景节点q对于根节点往X轴正方向Ud?0个单位?br>
    同样Q还可以使用场景节点的translateҎ辑ֈ相同的目的:
node1->translate(Vector3(3000));
    setPosition位置的改变是相对于父节点?translate则可以设|变换相对于哪个坐标pR?br>
    要得到场景节点的父节点,可以调用getParentNode:
SceneNode* parentNode = node1->getParentSceneNode();
    
    要得到场景节点的名称Q可以调用getName:
String nodeName = nod1->getName();

    因ؓ场景节点的移动都是相对于父节点的Q所以很Ҏ实现两个节点一L动:
Entity *entity1 = mSceneMgr->createEntity( "Athene1""Athene.mesh" );
SceneNode 
*node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "AtheneNode1" );
ode1
->attachObject( entity1 );

Entity 
*entity2 = mSceneMgr->createEntity( "Athene2""Athene.mesh" );
SceneNode 
*node2 = node1->createChildSceneNode( "AtheneNode2", Vector3( 5000 ) );
node2
->attachObject( entity2 );
    q样一来,node1成了node2的父节点Q移动node1会node2跟着一L动,而移动node2不会影响node1?br>
~放

    使用场景节点可以对网格模型进行羃放:
node1->scale(1.51.51.5);
    scale的三个参数分别对应x, y, z方向上的~放比例Q上面的例子网格模型放大到1.5倍?br>
旋{

    q可以对|格模型q行旋{Q其中yaw是Y轴的旋{Qpitch是X轴的旋{Qroll是Z轴的旋{Q?br>
node1->yaw(Degree(-90));
node1
->pitch(Degree(-90));
node1
->roll(Degree(-90));





]]>
Direct3D材质和灯光小?/title><link>http://www.shnenglu.com/eros/archive/2009/05/14/82894.html</link><dc:creator>林公?/dc:creator><author>林公?/author><pubDate>Wed, 13 May 2009 18:53:00 GMT</pubDate><guid>http://www.shnenglu.com/eros/archive/2009/05/14/82894.html</guid><wfw:comment>http://www.shnenglu.com/eros/comments/82894.html</wfw:comment><comments>http://www.shnenglu.com/eros/archive/2009/05/14/82894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/eros/comments/commentRss/82894.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/eros/services/trackbacks/82894.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">mDevice</span><span style="color: #000000;">-></span><span style="color: #000000;">SetRenderState(D3DRS_AMBIENT, </span><span style="color: #000000;">0xffffffff</span><span style="color: #000000;">);</span></div>      光照 <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">DirectX<font face="宋体">中有四种光照模型Q?/font></p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">环境光:环境光没有方向和位置上的特征Q只有一个颜色亮度|不会衰减Q所以在所有方向和所有物体表面投的环境光的数量是恒定不变的?/p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">漫反:漫反在生活中最为普遍,太阳光的直射Q日光灯的照都可以用O反射光来模拟。O反射由光的方向和物体表面的法向量军_。O反射光的I间位置和方向对物体的照明有很大的媄响?/p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">镜面反射Q当观察金属制品和玻璃制品的表面Ӟ改变观察点的位置Q会发现物体表面的亮度也会发生变化,q种现象UC为镜面反?/p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">自发光:是物体自n发光Q通过讄材质的自发光属?font face="Times New Roman">Emissive</font><font face="宋体">Q颜色和透明度)来实现。自发光可以影响一个对象的颜色。可以用材质的自发光来实现发光的对象,而不用在场景中添加灯光,减少了计量?/font></p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">用自发光属性创建的材质q不发射能被场景中其他物体反的光,也就是说自发光不参与光照计算?/p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0"></p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">有三U光?/p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">点光源:点光源有颜色和位|,但是没有方向Q它向所有方向发的光都一栗在E序中需要提供点光源的颜Ԍ位置Q衰减系数等参数?/p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">늁泡是点光源的一个例子。这U光的强度会随着距离物体的远q而衰减?/p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0"></p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">方向光:只有方向和颜色属性的光源Q没有位|,衰减。可以想象成从无I处发来的光,例如太阳光?/p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0"></p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0">聚光灯:聚光灯有颜色Q位|,方向Q类似现实中的探照灯。聚光灯又一个明亮的内椎体和大一点的外椎体组成。光的强度从内椎体到外椎体逐渐衰减Q衰减的规律?font face="Times New Roman">Falloff,Theta(</font><font face="宋体">内锥角)?/font><font face="Times New Roman">Phi</font><font face="宋体">Q外锥角Q三个属性共同决定?/font></p> <p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt;" class="p0"></p> <p style="margin-top: 0pt; margin-bottom: 0pt;" class="p0">    DirectX<font face="宋体">中物体的颜色由光的颜色和材质的颜色共同决?/font><font face="Times New Roman">(</font><font face="宋体">和现实世界情况不同)?/font></p> <p style="margin-top: 0pt; margin-bottom: 0pt;" class="p0">    默认情况下,D3D中的灯光是开启的Q就是说?<br /> </p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;">mDevice->Set<img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align="top" alt="" />RenderState(D3DRS_LIGHTING, TRUE);</div>     和忽略这一句效果一栗?br />    <br /> <p> </p> <p style="margin-top: 0pt; margin-bottom: 0pt;" class="p0">    如果要禁用灯光,将q句代码中的TRUE改ؓFALSE?br /></p> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">1 mDevice</span><span style="color: #000000;">-></span><span style="color: #000000;">SetRenderState(D3DRS_LIGHTING, FALSE);</span></div>     <br />    如果用灯光Q那么Q何的材质讄都不会有效果? <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">2 mDevice</span><span style="color: #000000;">-></span><span style="color: #000000;">SetRenderState(D3DRS_AMBIENT, </span><span style="color: #000000;">0xffffffff</span><span style="color: #000000;">);</span></div>     <br />    关于q两句代?~号??)Q又有几U情?<br />    1)1为FALSEӞ启用2Q那么会获得一个环境光照明Q此时设|材质无?渲染对象为白?Q纹理可以正常显C?如果有纹??br />    2)1为TRUEӞ启用2Q材质设|有效,会媄响渲染结果,U理可以正常昄?br />    3)1为FALSEӞ用2Q材质设|失效,U理可以正常昄?br />    4)1为TRUEӞ用2Q材质设|失效,U理无法昄(渲染对象为黑??br /><br />   P.S.以上所说的材质指的是D3DMATERIAL9Q不包括点艌Ӏ带有顶点色Ӟ1为TRUE时渲染ؓ黑色QFALSE时ؓ正常Q和2的状态无兟?br /><br />    l论Q当开启光照时Q必L定一U光源才能渲染对象正确l制(渲染状态设|的环境光或者其?U类型的光源)?br /> <p> </p> <p style="margin-top: 0pt; margin-bottom: 0pt;" class="p0"></p><img src ="http://www.shnenglu.com/eros/aggbug/82894.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/eros/" target="_blank">林公?/a> 2009-05-14 02:53 <a href="http://www.shnenglu.com/eros/archive/2009/05/14/82894.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Qt中用DirectXhttp://www.shnenglu.com/eros/archive/2009/05/13/82758.html林公?/dc:creator>林公?/author>Tue, 12 May 2009 22:40:00 GMThttp://www.shnenglu.com/eros/archive/2009/05/13/82758.htmlhttp://www.shnenglu.com/eros/comments/82758.htmlhttp://www.shnenglu.com/eros/archive/2009/05/13/82758.html#Feedback0http://www.shnenglu.com/eros/comments/commentRss/82758.htmlhttp://www.shnenglu.com/eros/services/trackbacks/82758.html阅读全文

]]>
Luabind导出cdluahttp://www.shnenglu.com/eros/archive/2009/05/02/81661.html林公?/dc:creator>林公?/author>Fri, 01 May 2009 17:32:00 GMThttp://www.shnenglu.com/eros/archive/2009/05/02/81661.htmlhttp://www.shnenglu.com/eros/comments/81661.htmlhttp://www.shnenglu.com/eros/archive/2009/05/02/81661.html#Feedback6http://www.shnenglu.com/eros/comments/commentRss/81661.htmlhttp://www.shnenglu.com/eros/services/trackbacks/81661.html  刚开始学习LuabindQ所以算是一些简单的W记?br>  使用Luabind前要包含相关的头文gQ引入luabind命名I间。注意包含luabind.hppq不会自动包含lua相关头文Ӟ要根据需要自己添加?/span>
 
#include <luabind/luabind.hpp>

extern "C"
{
#include 
<lua.h>
#include 
<lualib.h>
}

using namespace luabind;

  假设有以下类定义Q?br>
 1 // TestClass.h
 2 class TestClass
 3 {
 4 public:
 5 
 6     TestClass(string s);
 7 
 8     static TestClass* Singleton();
 9 
10     void Print();
11 
12 private:
13 
14     static TestClass* mSingleton;
15 
16     string mString;
17 };
18 
19 // TestClass.cpp
20 TestClass* TestClass::mSingleton = NULL;
21 
22 TestClass::TestClass(string s)
23 {
24     mString = s;
25 }
26 
27 TestClass* TestClass::Singleton()
28 {
29     if (TestClass::mSingleton == NULL)
30     {
31         return new TestClass("Hello");
32     }
33     else
34     {
35         return mSingleton;
36     }
37 }
38 
39 void TestClass::Print()
40 {
41     cout << mString << endl;
42 }
 
  创徏一个bindClass函数Q用来进行导出类的相兛_?/span>
 1 int bindClass(lua_State* L)
 2 {
 3     open(L);
 4 
 5     module(L)
 6         [
 7             class_<TestClass>("TestClass")
 8             .def(constructor<string>())
 9             .def("Print"&TestClass::Print),
10             def("Singleton"TestClass::Singleton)    // h意static成员函数Singleton()导出时和非静态成员函数的写法区别Q?br>                                                                     // 和全局函数的导出写法一栗?/span>
11         ];
12 
13     return 0;
14 }
  def模版cM定义导出函数Ӟ成员函数指针一定要用取地址W?/span>&Q?span style="COLOR: #000000">如TestClass::Print()?span style="FONT-FAMILY: 微Y雅黑">而自由函数和静态函数可用可不用Q如
TestClass::Singleton()?br>  现在可以写代码试了:
// test.lua
1 testClass = Singleton()
2 testClass:Print()

// main.cpp
 1 int _tmain(int argc, _TCHAR* argv[])
 2 {
 3     TestClass testClass("Hello from lua.");
 4     
 5     lua_State* L = luaL_newstate();
 6 
 7     init(L);
 8 
 9     luaL_dofile(L, "add.lua");
10 
11     lua_close(L);
12 
13     return 0;
14 }
15 
  q行l果Q?/span>



]]>
VS2008下编译luabind 0.8.1http://www.shnenglu.com/eros/archive/2009/04/29/81508.html林公?/dc:creator>林公?/author>Wed, 29 Apr 2009 15:31:00 GMThttp://www.shnenglu.com/eros/archive/2009/04/29/81508.htmlhttp://www.shnenglu.com/eros/comments/81508.htmlhttp://www.shnenglu.com/eros/archive/2009/04/29/81508.html#Feedback5http://www.shnenglu.com/eros/comments/commentRss/81508.htmlhttp://www.shnenglu.com/eros/services/trackbacks/81508.html     学了一D|间LuaQ显然直接在目中用是很不方便Qgoogle了一下,g大家都对luabindq个lua包装c青睐有加,于是我也随大势想用用看?br>     先做好准备工作,下蝲了luabin 0.8.1源码QBoost 1.3.8源码和lua 5.1.4源码Q编译环境是VS2008 SP1。之前在|上看到一些文章说q些开源Y件之间的版本依赖比较敏感Q可能会有这样那L问题Q动手之前有些惶恐?br>     q运的是Q编译过E很利Q如下:
     1.~译lua 5.1.4
     q入VS2008的命令行工具Q定位到lua的源码目录下Q执行命令etc\luavs.batQ没什么问题的话很快就可以~译好luaQ得到lua51.lib和lua51.dll?br>     2.~译luabind
     解压下蝲回来的luabind压羃包,假设解压到d:\luabind-0.8.1\QBoost解压到d:\boost 1_38_0\Qlua解压到d:\lua 5.1.4\
     在VS中新Z个静态库目Q将d:\luabind-0.8.1\src下的源码全部d到项目中Q然后在目中新建luabind和luabind\detail\两个虚拟文g夹,对应的将d:\luabind-0.8.1\luabind和d:\luabind-0.8.1\luabind\detail下的文gd到文件夹中?br>     然后为项目添加附加包含目录,右键点击目节点->属?>配置属?>C\C++标签下,在附加包含目录中填入d:\luabind-0.8.1\Qd:\boost 1_38_0\kQd:\lua 5.1.4\src\。然后修攚w目字W集为多字节字符集?br>     准备qAQ生成项目。在我的环境中编译很利Q没有出CQ何问题,成功后会得到luabind.lib?br>
     接下来就按照惯例来写一个hello worldE序作ؓ使用luabind的第一步?br>     在VS中新Z个控制台目Q类型ؓDLLQ命名项目ؓHello WorldQ然后键入以下代码:

 1#include "stdafx.h"
 2#include <iostream>
 3#include <luabind/luabind.hpp>
 4
 5void greet()
 6{
 7    std::cout << "hello world!\n";
 8}

 9
10extern "C" int __declspec(dllexport) init(lua_State* L)
11{
12    using namespace luabind;
13
14    open(L);
15
16    module(L)
17    [
18        def("greet"&greet)
19    ];
20
21    return 0;
22}


   注意Q在Windows环境下init函数之前是要加__declspec(dllexport)才能函数导出的Q而luabind的文中的环境是linuxQ默认不用加__declspec(dllexport)也可以导?因个折腾了我半天才把hello word成功q行)?br>   ~译目Q?记得luabind.lib和lua51.libd到链接选项中:目属?>q接?>输入->附加依赖文gQ加入luabind.lib和lua51.lib)?br>   hello world.dll攑ֈlua51.dll和lua.exe所在的目录下?br>   打开lua命o行,键入:
    
   试成功Qenjoy?/font>



]]>
SceneNode::setDirection函数问题http://www.shnenglu.com/eros/archive/2008/12/30/70732.html林公?/dc:creator>林公?/author>Mon, 29 Dec 2008 17:27:00 GMThttp://www.shnenglu.com/eros/archive/2008/12/30/70732.htmlhttp://www.shnenglu.com/eros/comments/70732.htmlhttp://www.shnenglu.com/eros/archive/2008/12/30/70732.html#Feedback0http://www.shnenglu.com/eros/comments/commentRss/70732.htmlhttp://www.shnenglu.com/eros/services/trackbacks/70732.htmlmSn->translate(mPosition * evt.timeSinceLastFrame, Node::TS_WORLD);         刚开始学习Ogre,做了个很单的demo,用键盘的上下左右控制一个h物模型四处走动。逻辑很简单,但是实现到想要的效果却费了一番周折?br>      一开始用一个Vector3 mPosition变量保存人物的位|,然后Real mWalkSpeed保存人物的移动速度Q在上下左右的按键响应代码中分别
写上处理人物各方向移动的代码Q?/span>
 
 1    bool DemoFrameListener::keyPressed(const OIS::KeyEvent &arg)
  
2{
 
3    switch (arg.key)
 
4    {
 
5    // 按下Escape键,退出程序?/span>
 6    case OIS::KC_ESCAPE:
 
7        mContinue = false;
 
8    
 
9    // W、S、A、D控制人物行走?/span>
10    case OIS::KC_UP:
11    case OIS::KC_W:
12        mPosition.z -= mWalkSpeed;
13        mSn->setDirection(Vector3::NEGATIVE_UNIT_Z);
14        // 取得模型?Walk"动画集?/span>
15        mAnimationState = mEntity->getAnimationState("Walk");
16        break;
17    case OIS::KC_S:
18    case OIS::KC_DOWN:
19        mPosition.z += mWalkSpeed;
20        mSn->setDirection(Vector3::UNIT_Z);
21        // 取得模型?Walk"动画集?/span>
22        mAnimationState = mEntity->getAnimationState("Walk");
23        break;
24    case OIS::KC_A:
25    case OIS::KC_LEFT:
26        // 取得模型?Walk"动画集?/span>
27        mAnimationState = mEntity->getAnimationState("Walk");
28        mSn->setDirection(Vector3::UNIT_X);
29        break;
30    case OIS::KC_D:
31    case OIS::KC_RIGHT:
32        // 取得模型?Walk"动画集?/span>
33        mAnimationState = mEntity->getAnimationState("Walk");
34        mSn->setDirection(Vector3::NEGATIVE_UNIT_X);
35        break;
36    }

37
38    return true;
39}

40
然后在每一帧中调用
mSn->translate(mPosition * evt.timeSinceLastFrame, Node::TS_LOCAL);
来更Ch物位|?br>      ~译代码q行Q出C奇怪的效果。初始时人物面朝-Z轴方向,按下后应该面?Z轴方向ƈ朝这个方向行赎ͼ实际却是面朝+Z方向往-Z轴方向移动。以为逻辑代码写错DUd方向错误Q检查了半天发现一炚w误都没有。折腾了两天都没有结果,今天在群里和天时谈到SceneNode::setDirectionq个函数Qh家说调用SceneNode::setDirectionq个函数后会改变模型的局部坐标系Q顿时脑子高速运转,隐约觉得ȝ案已l不q了Q自q的一下,l于解决了问题?br>      原来Q用一个参?方向向量)调用setDirection函数Ӟ该函数有两个默认|我遇到的问题和W二个参数有养Iq个参数描述的是setDirection函数操作的参照空_有Node::TS_LOCAL,Node::TS_PARENT和Node::TS_WORLD三个可选|分别表示Q局部空_父节点空间和世界I间。在我的例子中,人物的朝向是以整个地图ؓ参照物的Q所以,q个参数应该讄成TS_WORLDQ如果取光认值Node::TS_LOCALQ调用setDirection之后Qh物的整个局部坐标系的方向都变了Q这样一来,当按下方向键Ӟ人物会面向正的方向Q但是移动的参照方向却和原来的相反,q就是ؓ什么会有正的朝向却背向移动的奇怪现象了?/span>
      另外
mSn->translate(mPosition * evt.timeSinceLastFrame, Node::TS_LOCAL);
中的Node::TS_LOCAL也要ҎNode::TS_WORLDQ人物相对于世界空间^UR?


]]>
[ZT]DirectX中的投媄变换http://www.shnenglu.com/eros/archive/2008/11/08/66356.html林公?/dc:creator>林公?/author>Sat, 08 Nov 2008 12:42:00 GMThttp://www.shnenglu.com/eros/archive/2008/11/08/66356.htmlhttp://www.shnenglu.com/eros/comments/66356.htmlhttp://www.shnenglu.com/eros/archive/2008/11/08/66356.html#Feedback0http://www.shnenglu.com/eros/comments/commentRss/66356.htmlhttp://www.shnenglu.com/eros/services/trackbacks/66356.html原脓地址Q?/span>http://blog.csdn.net/BAKER_LEE/archive/2008/08/20/2801515.aspx

     DirectX中投影变换D3DXMatrixPerspectiveFovLHQ)其实产生的变换矩阵不是将3D物体转换?Dq面画面的变换。实际上 是把3D世界的物体变换到(1,1,0) (-1,1,0) (-1,-1,0) (1,-1,0) (1,1,1) (-1,1,1) (-1,-1,1) (1,-1,1)q个盒子中。在Jim Adams 的著?lt;Role playing games with DriectX 8.0>和Frank Luna 的著作中<Introduction to 3D Game Programming with DirectX9.0>都把q个变换矩阵讲成?D?D的变换。实际上在DirectX?D?D的变换是由SDK自己完成的。而我们要做的? ?D世界变换C面那个小盒子中?

q个变换矩阵是投影变换的预变换?/p>

在DirectX中,把视口的高作?D世界里面的长度:2.0f来用的Q一个视点观察世界的视野范围在Y轴上无论什么情况下都是 -1.0f?.0fQ这一点在后面来证明)。把视口的高作ؓy_端坐标为(xQ?Q,底端坐标为(xQ?1Q?/p>

视口Q在H体中显C?D的矩形范_可以通过D3DDevice的SetViewPortQ)来设|大,默认的大ؓH体的大?/p>

变换的过E就是把点的向量乘以变换矩阵Q可以得到这个点在新坐标pȝ对应向量Q在投媄变换矩阵中Z轴的D?~1之内Q也是?D世界里所有的炚w会被投媄C上描q的盒子中?/p>

我们用函数D3DXMatrixPerspectiveFovLH来获得该“投媄变换”矩阵?/p>

D3DXMATRIX * D3DXMatrixPerspectiveFovLH(

 D3DXMATRIX * pOut ,

 FLOAT fovy ,

 FLOAT Aspect ,

 FLOAT zn ,

 FLOAT zf

);

其中参数fovy为y轴上的视角,Aspect为高宽比Qzn裁面Qzf裁面?/p>

Y轴的视角Q在DirectX的帮助文中描述fovy为filed of view in y direction?/p>

高宽比:一般用于全屏显C,如果我们要让3D世界充满整个H口Q就必须让高宽比{于H口的高宽比Q例如让我们的窗口正常显C?#8221;标准视野”[2X2 的一个面,点坐标为(1Q?Q,Q?1Q?Q,Q?1Q?1Q,Q?Q?1Q]Q我们必LH口的高宽比讄?Q?Q这P标准视野可以充满整个窗 口,否则 会在左右留出I白Q这个空白是无法用VIEWQWORLD变换所能填充的Q相当于word文采用“文档”视图里面的两边的灰色区域Q是无法~辑的,在一 般的3DE序里面是不允许出现q种情况的,但是我们的显C器的高宽比不是1Q?Q而且大部分的用户也不习惯?Q?的窗口来使用E序Q我们需要调整这个标 准视野,来适应我们的窗口大,Aspect是q个作用Q有一炚w要说明的Aspect不等?Q不代表标准视野׃是(1Q?Q,Q?1Q?Q, Q?1Q?1Q,Q?Q?1Q,如果Aspect = 0.5 标准视野也还是(1Q?Q,Q?1Q?Q,Q?1Q?1Q,Q?Q?1Q,只不qx轴上的单位长度的像素??y轴上单位长度的像素值的2倍?/p>

 

裁面的作? 在Z轴方向上Q不昄z坐标于zn的或者大?zf的点?/p>

     在上图中QU色的线为我们要昄的面Q红色的弧就是上面函数fovy的夹角,当这个夹角ؓ90°的时候,我们H口的视野ؓ标准视野Q?span style="color: red;">当夹角羃时Q可视范围就变小Q如图,?0°变ؓ60°的时候,可视范围变小了,要显C的面,相对于可以范围变大了Q由于我们的H口是不变的Q也是说实际显C的像素g变,要显C的面就相对于变大,fovy的值变的l果是把要昄的面变大?/span>

     当fovy?的时候呢Q视野就?Q就是说什么都看不刎ͼH口中显C的是底色?/p>

     当fovy变大?80°的时候呢Q视野的范围U夹角上的垂直于Z轴的且过点(0Q?Q?Q的q线。当视线夹角变大视野范围也变大,夹角近?80°的时候视野范围趋q于无穷大,要显C的面相对于视野范围是0Q也是说羃到最就?.所以我们在讑֮fovy的gؓ180°的时候也是什么都看不见,为底艌Ӏ?/p>

     那大?80°的情况呢Q在我们的视野理Z是不存在q种情况的,当视角大?80°Ӟ视角于Z轴垂直的q线是不会过点(0Q?Q?Q的。但是函数放在我们面前,我们是可以输入大?80°的数|l果会如何呢Q?/p>

非常奇的事情发生了Q我们的图以原点Z心旋转了180°Q这是无法用我们的视野理论来解释?因ؓ180°的视野范围就已经是个极限了,“越极限”是只能在q告中出现的词汇Q如果能越Q那׃叫极限了QPQ?/p>

     在MSDN的文档中有这样一个数学公式:y-scale = cotQfovy/2Q?/p>

     q下明白了Q当我们输入大于180°的时候cot的gؓ负数。而x-scale = y-scale/ Aspect?

也就是说Q一?D世界的点Q在视野大于180°的作用下Q它的放?~小倍数不变Q但是需要对X轴做一ơ对U变换,q要对Y轴做一ơ对U变换。相当于对原点做一ơ对U变换?/p>

拿到q个公式Q我们就可以对前面的标准做一个证明:

当fovy?0° Aspect = 1的时候,是说y-scale = cotQ?5°Q?= 1

x-scale = 1Q这时y和x的羃放比都ؓ1Q没有羃放。我们显C样一个面

              {-1.0f, -1.0f, 0.0f},

              {-1.0f, 1.0f, 0.0f},

              { 1.0f, 1.0f, 0.0f},

              {-1.0f, -1.0f, 0.0f},

              { 1.0f, 1.0f, 0.0f},

              { 1.0f,-1.0f, 0.0f}

     我们会发现无论怎么改变H口的高度,q个画面的Y轴方向上都会充满整个视口。(如果我们把视口的高度和宽度设|成一LQ在X轴上也会充满整个视口Q所以DirectX会以视口的高度的二分之一作ؓY轴的单位长度?/p>



]]>
自定义顶点结构与D3DXCOLORhttp://www.shnenglu.com/eros/archive/2008/11/08/66298.html林公?/dc:creator>林公?/author>Fri, 07 Nov 2008 20:54:00 GMThttp://www.shnenglu.com/eros/archive/2008/11/08/66298.htmlhttp://www.shnenglu.com/eros/comments/66298.htmlhttp://www.shnenglu.com/eros/archive/2008/11/08/66298.html#Feedback0http://www.shnenglu.com/eros/comments/commentRss/66298.htmlhttp://www.shnenglu.com/eros/services/trackbacks/66298.html最q系l的学习Direct3DQ?span style="font-family: 微Y雅黑; ">从DXSDK的例子学赗在Tut02_Vertices例子中,自定义顶Ҏ式ؓQ?br />
struct CUSTOMVERTEX
{
    FLOAT x, y, z, rhw; 
    DWORD color;        
    
//D3DXCOLOR color;
};

    
// 初始化顶Ҏ?/span>
    CUSTOMVERTEX vertices[] =
    {
        { 
150.0f,  50.0f0.5f1.0f, D3DXCOLOR(1.0f0.0f0.0f0.0f)/*0xffff0000*/, }, // x, y, z, rhw, color
        { 250.0f250.0f0.5f1.0f, D3DXCOLOR(0.0f1.0f0.0f0.0f)/*0xff00ff00*/, },
        {  
50.0f250.0f0.5f1.0f, D3DXCOLOR(0.0f0.0f1.0f0.0f)/*0xff00ffff*/, },
    };
     自定义格式结构体中注释掉的是我后来想用的D3DXCOLOR。原本以为将原先定义的DWORD颜色换成D3DXCOLORcdQ然后初始化的时候相应做替换可以了Q谁知道Q渲染出来的三角形顶炚w色异常:
     wrong.JPG
     正常的应该是q样
     right.JPG
     百思不得其解,郁闷x。后来终于在GameDev.net上找到近似案?q里)Q琢一番,恍然大悟?br />     原来Q在FVF点格式中,D3D需要特定的内存布局Q就是说Q你的顶Ҏ式中各项的类型应该满_的期望。比如,它要求的颜色值应该是DWORDcd?2位整数|而替换成D3DXCOLOR之后Q却变成?个floatcd?r, g, bQa)Q与其期望不W,所以导致了异常的颜艌Ӏ顶点结构体中颜色D是换回DWORDcdQ代码中的赋值可以正怋用,因ؓD3DXCOLOR有到DWORD的自动{换?br />

]]>
D3D中D3DFVF_XYZ和D3DFVF_XYZRHW的区?/title><link>http://www.shnenglu.com/eros/archive/2008/07/14/56128.html</link><dc:creator>林公?/dc:creator><author>林公?/author><pubDate>Mon, 14 Jul 2008 12:48:00 GMT</pubDate><guid>http://www.shnenglu.com/eros/archive/2008/07/14/56128.html</guid><wfw:comment>http://www.shnenglu.com/eros/comments/56128.html</wfw:comment><comments>http://www.shnenglu.com/eros/archive/2008/07/14/56128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/eros/comments/commentRss/56128.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/eros/services/trackbacks/56128.html</trackback:ping><description><![CDATA[<p style="FONT-FAMILY: 微Y雅黑">   学习D3D9的时候遇到灵z顶Ҏ?FVF)中D3DFVF_XYZRHW和D3DFVF_XYZ之间差异而引L问题?br>参看?span style="FONT-FAMILY: 微Y雅黑">同是C++博客的一博?其分析如?<br>       The RHW value, which stands for Reciprocal of Homogeneous W[<font color=#800000>1</font>], tells Direct3D that the vertices that are being used are already in screen coordinates. This value is normally used in fog and clipping calculations and should be set to 1.0.<br>       在顶点结构体中没有RHWӞDirect3D执行视、投影、世界等变换以及q行光线计算Q之后你才能在窗口中得到你所l制的物体。当点l构体中有RHWӞ像上面那段英文所qͼ告知Direct3D使用的顶点已l在屏幕坐标pM了,不再执行视图、投影、世界等变换和光U计,因ؓD3DFVF_XYZRHW标志告诉它顶点已l经q了q些处理Qƈ直接顶点进行光栅操作,M用SetTransformq行的{换都对其无效。不q这时的原点在客户区的左上角了Q其中x向右为正Qy向下为正Q而z的意义已l变为z-buffer的象素深度?br>       值得注意的是D3DFVF_XYZRHW和D3DFVF_XYZ、D3DFVF_NORMAL不能共存Q因为后两个标志与前一个矛盾。在使用q种点Ӟpȝ需要顶点的?/span>|已l经q变换了Q也是说x、y必须在屏q坐标系中,z必须是z-buffer中的象素深度Q取D_0.0Q?.0Q离观察者最q的地方?.0Q观察范围内最q可见的地方?.0?br>---------------------------------------------------------------------------------------------------------------------------------------------------------------<br>       l合我自q试验Q有一些发玎ͼ记录下来以备忘?br>       D3DFVF_XYZ默认的用户区中心坐标是(0Q?Q,而D3DFVF_XYZRHW是左上角为(0Q?Q?br>       用D3DFVF_XYZ默认的ؓ非光照的Q而D3DFVF_XYZRHW是高zd光照?br>       当用D3DFVF_XYZӞ要设|渲染状态:</p> <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">      <span style="COLOR: #000000">g_pd3dDevice</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">SetRenderState(D3DRS_LIGHTING,FALSE)<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif"></span></div>          <span style="FONT-FAMILY: 微Y雅黑">而且要设|观察矩阵和投媄矩阵Q例如:</span><br>         <div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><img style="WIDTH: 11px; HEIGHT: 16px" align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" width=11 height=16>      <span style="COLOR: #000000">D3DXMATRIX matProj;<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">      D3DXMATRIX matView;<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">     </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Create and set the projection matrix</span><span style="COLOR: #008000"><br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #000000">      D3DXMatrixPerspectiveFovLH(</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">matProj, D3DX_PI</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">4.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">1.33333f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">1000.0f</span><span style="COLOR: #000000">);<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">      g_pd3dDevice</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">SetTransform(D3DTS_PROJECTION, </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">matProj);<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">      </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Create and set the view matrix</span><span style="COLOR: #008000"><br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #000000">      D3DXMatrixLookAtLH(</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">matView,                                \<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">        </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">D3DXVECTOR3(</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">500.0f</span><span style="COLOR: #000000">),       \<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">        </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">D3DXVECTOR3(</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">),          \<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">        </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">D3DXVECTOR3(</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">));<br><img align=top src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif">      g_pd3dDevice</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">SetTransform(D3DTS_VIEW, </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">matView);</span></div>         <span style="FONT-FAMILY: 微Y雅黑">否则没有渲染l果?/span> <img src ="http://www.shnenglu.com/eros/aggbug/56128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/eros/" target="_blank">林公?/a> 2008-07-14 20:48 <a href="http://www.shnenglu.com/eros/archive/2008/07/14/56128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://483187.com" target="_blank">㽶Ƶ߹ۿ</a>| <a href="http://shenduzhongcao.com" target="_blank">ַ</a>| <a href="http://www-26333com.com" target="_blank">뾫ƷԿ</a>| <a href="http://caopormo.com" target="_blank">avһ</a>| <a href="http://zzmzit.com" target="_blank">ҹþþ</a>| <a href="http://495177.com" target="_blank">þùƷվ</a>| <a href="http://bgdete.com" target="_blank">Ʒ99Ƶ</a>| <a href="http://mauhorng.com" target="_blank">ŷպȤӰ</a>| <a href="http://6aaee.com" target="_blank">޵Ƶ߹ۿ</a>| <a href="http://448968.com" target="_blank">þgogoģ</a>| <a href="http://zunguidq.com" target="_blank">þþ</a>| <a href="http://66jj99.com" target="_blank">ŷۺ</a>| <a href="http://72avav.com" target="_blank">ҹ߾Ʒ</a>| <a href="http://www78778.com" target="_blank">ŷ</a>| <a href="http://666777v3.com" target="_blank">һ</a>| <a href="http://84172199.com" target="_blank">Ƶ</a>| <a href="http://www353488.com" target="_blank">ŷ۴Ƭ</a>| <a href="http://ks180.com" target="_blank">ŷպ</a>| <a href="http://tk99444.com" target="_blank">һ</a>| <a href="http://sao320.com" target="_blank">ŷĻ߹ۿ</a>| <a href="http://haohetour.com" target="_blank">ɫһ</a>| <a href="http://cp3824.com" target="_blank">ŷպ</a>| <a href="http://zqx186.com" target="_blank">ԽС13DD14ŷ</a>| <a href="http://387www.com" target="_blank">91þþƷҹҹ</a>| <a href="http://hg98688.com" target="_blank">ŷһҳ</a>| <a href="http://2424ddd.com" target="_blank">ŷѲ</a>| <a href="http://5588gww.com" target="_blank">þùƷɫ</a>| <a href="http://www1122fu.com" target="_blank">˳ѹۿ</a>| <a href="http://anxingou365.com" target="_blank">þþƷһ</a>| <a href="http://9952222.com" target="_blank">ŷպۺϾƷ</a>| <a href="http://sepapapa8888.com" target="_blank">һƵ</a>| <a href="http://hehextv.com" target="_blank">ɫһ</a>| <a href="http://bby99.com" target="_blank">ŷպ</a>| <a href="http://gaysexcube.com" target="_blank">ŷһƵۿ </a>| <a href="http://avtb2120.com" target="_blank">1000Ʒþþþþþþ</a>| <a href="http://xxmh686.com" target="_blank">ŷձƷ</a>| <a href="http://jdss777.com" target="_blank">ŷwwwwww</a>| <a href="http://caerusmdx.com" target="_blank">ŷ߹ۿ</a>| <a href="http://8xyxs1.com" target="_blank">ŷƷ</a>| <a href="http://julong-ads.com" target="_blank">ŷһ</a>| <a href="http://6666345.com" target="_blank">ŷ˼Ƶѹۿ</a>| <a href="http://833077.com" target="_blank">ҾþþƷһ</a>| <a href="http://099idc.com" target="_blank">ŷ պ Ʒѹۿ</a>| <a href="http://133868.com" target="_blank">þƵ</a>| <a href="http://03qt.com" target="_blank">ŷ˾Ʒһ</a>| <a href="http://kk8586.com" target="_blank">ŷɫƷ߹ۿƵ</a>| <a href="http://taoseav8.com" target="_blank">ŷպ</a>| <a href="http://yjjs20.com" target="_blank">Ʒ㶮</a>| <a href="http://www55avav.com" target="_blank">鶹Ʒtheporn</a>| <a href="http://xian369.com" target="_blank">վƷƵһ</a>| <a href="http://wwwjuhuase.com" target="_blank">޹ҹ</a>| <a href="http://zhaosaofu.com" target="_blank">һŷ</a>| <a href="http://8bc3.com" target="_blank">þþƷ</a>| <a href="http://wwwgay456.com" target="_blank">˾þþ</a>| <a href="http://wlhtgj.com" target="_blank">99ƷƵ</a>| <a href="http://0855123.com" target="_blank">һһþaþþƷۺ һһþaþþƷۺ鶹 </a>| <a href="http://389746.com" target="_blank">þþþùһ</a>| <a href="http://yyds16.com" target="_blank">ŷƵ</a>| <a href="http://by1473.com" target="_blank">Ʒ</a>| <a href="http://41818c.com" target="_blank">ձ</a>| <a href="http://4466o.com" target="_blank">޾ƷƵһ</a>| <a href="http://www-13413.com" target="_blank">ŷ.www</a>| <a href="http://zhuankee.com" target="_blank">һ</a>| <a href="http://127mingdao.com" target="_blank">һ</a>| <a href="http://744734.com" target="_blank">Ʒһ߿ </a>| <a href="http://51duanxinmao.com" target="_blank">Ʒպþþ</a>| <a href="http://www033459.com" target="_blank">ҹaƬ</a>| <a href="http://78757a.com" target="_blank">ŷպۺ</a>| <a href="http://669528.com" target="_blank">Ʒһ</a>| <a href="http://tianxiantxtv.com" target="_blank">ӰԺ</a>| <a href="http://77smsm.com" target="_blank">þùۺᆱƷ</a>| <a href="http://www559955.com" target="_blank">ӰȷպƷ</a>| <a href="http://hehextv.com" target="_blank">ŷvavaƵva</a>| <a href="http://www-119049.com" target="_blank">պƷ</a>| <a href="http://621767.com" target="_blank">ҹƷþþþ</a>| <a href="http://yzsss.com" target="_blank">ھƷþþþӰԺ</a>| <a href="http://zhaosaofu.com" target="_blank">þþƷһԡ</a>| <a href="http://nmbgbc.com" target="_blank">þþþþ޾Ʒ4k</a>| <a href="http://www-8438.com" target="_blank">߹ۿһ</a>| <a href="http://cloakok.com" target="_blank">ŷƵվ</a>| <a href="http://828121.com" target="_blank">һ</a>| <a href="http://mgcc37.com" target="_blank">þˬˬ</a>| <a href="http://huohuoglobal.com" target="_blank">91þþþþþþ</a>| <a href="http://avtaobao7788.com" target="_blank">ŷպһƵ</a>| <a href="http://961318.com" target="_blank">ŷһ</a>| <a href="http://alio-ai.com" target="_blank">¾Ʒ</a>| <a href="http://www515678.com" target="_blank">þþ999</a>| <a href="http://fengboll.com" target="_blank">޾ƷƷ벻99Ħ</a>| <a href="http://by27333.com" target="_blank">ŷպСƵ</a>| <a href="http://spardec.com" target="_blank">þseƷһ</a>| <a href="http://287677.com" target="_blank">޸岻</a>| <a href="http://yeyelu888.com" target="_blank">ҹƷþþþþ99</a>| <a href="http://lexueit.com" target="_blank">ŷպ</a>| <a href="http://www-440450.com" target="_blank">ŷպۺ</a>| <a href="http://alex-bruni.com" target="_blank">ҹƷþһţӰ</a>| <a href="http://58yewu.com" target="_blank">ŷ˿Ƶ</a>| <a href="http://avjj80.com" target="_blank">ҹƷӰԺ߹ۿ</a>| <a href="http://elpezomaha.com" target="_blank">ӣyy˽ӰԺ</a>| <a href="http://123-sj.com" target="_blank">ŷպһ</a>| <a href="http://123yongjiu.com" target="_blank">þѾƷձþĻ</a>| <a href="http://scratbag.com" target="_blank">ձþ</a>| <a href="http://337795.com" target="_blank">ѹۿwwwƵ</a>| <a href="http://jlhao123.com" target="_blank">һëƬ</a>| <a href="http://www1122fu.com" target="_blank">޹Ʒþþ</a>| <a href="http://w7727.com" target="_blank">Բľþþþþ</a>| <a href="http://popowq.com" target="_blank">ŷ</a>| <a href="http://derinsolar.com" target="_blank">þùƷɫ</a>| <a href="http://wwwlywbb.com" target="_blank">Ƶһ</a>| <a href="http://138268.com" target="_blank">޼պŷƷ</a>| <a href="http://cz-sensor.com" target="_blank">þwww_ƬѲ </a>| <a href="http://qhzyxcd.com" target="_blank">þ㽶߿ۿav</a>| <a href="http://beeperagain.com" target="_blank">պһƷ</a>| <a href="http://86808a.com" target="_blank">ŷƵ</a>| <a href="http://wwwavtb2049.com" target="_blank">þþ뾫ƷպĦ</a>| <a href="http://73cao.com" target="_blank">Ǿþ</a>| <a href="http://18mmcg.com" target="_blank">ձ岻</a>| <a href="http://26thb.com" target="_blank">ŷ</a>| <a href="http://wwwzmcc1.com" target="_blank">Ʒþþþ9999</a>| <a href="http://259758.com" target="_blank">պҹav</a>| <a href="http://woshinannan741.com" target="_blank">αtsһ</a>| <a href="http://pansinobbs.com" target="_blank">ŷպһֲ </a>| <a href="http://1188188.com" target="_blank">ŷ</a>| <a href="http://www515678.com" target="_blank">һվ</a>| <a href="http://www520590.com" target="_blank">ӰƷ</a>| <a href="http://hhh699.com" target="_blank">һ</a>| <a href="http://tsjcmm.com" target="_blank">Ʒۿ</a>| <a href="http://nagebbs.com" target="_blank">ŷҹլӰԺ߹ۿ</a>| <a href="http://z10669.com" target="_blank">ŷ鶹</a>| <a href="http://www-787333.com" target="_blank">þ͵Ƶ</a>| <a href="http://csmgxun.com" target="_blank">ŷԴ</a>| <a href="http://6h8c.com" target="_blank">ŷxxxxapp</a>| <a href="http://aqdw2021.com" target="_blank">ҹav</a>| <a href="http://2938476.com" target="_blank">ۺϾþһһ</a>| <a href="http://wwwiqiuxia.com" target="_blank">޾ƷƬ</a>| <a href="http://www-13413.com" target="_blank">޹</a>| <a href="http://041935.com" target="_blank">޹պ</a>| <a href="http://http456446.com" target="_blank">ŷѿ</a>| <a href="http://mathck.com" target="_blank">ŷӰȷ</a>| <a href="http://998609.com" target="_blank">ŷƵ</a>| <a href="http://132653.com" target="_blank">ŷŷҰŷƷ</a>| <a href="http://300644.com" target="_blank">ţţƷƵ</a>| <a href="http://snis675.com" target="_blank">þŮ</a>| <a href="http://710952.com" target="_blank">þҹɫ˾Ʒ</a>| <a href="http://qq6699.com" target="_blank">þһ</a>| <a href="http://www993997.com" target="_blank">þþ999ƷƵ</a>| <a href="http://012492.com" target="_blank">þˬ</a>| <a href="http://dahuxu.com" target="_blank">ŷmvպmvվ</a>| <a href="http://www1122fu.com" target="_blank">ůůƵ</a>| <a href="http://zhipiao998.com" target="_blank">ŷһƬ</a>| <a href="http://9928k.com" target="_blank">ŷ պ </a>| <a href="http://my8823.com" target="_blank">ڲһ</a>| <a href="http://wwdd44.com" target="_blank">һ</a>| <a href="http://my1315.com" target="_blank">ɫպվƵ</a>| <a href="http://0070571.com" target="_blank">߾Ʒۺ</a>| <a href="http://filmcameralibrary.com" target="_blank">㽶ۺ8</a>| <a href="http://www333444123.com" target="_blank">޹Ʒþþþ</a>| <a href="http://www-85489.com" target="_blank">޹þþƷ</a>| <a href="http://033530.com" target="_blank">һƷ</a>| <a href="http://wwwp6660.com" target="_blank">ۺϵӰ</a>| <a href="http://xingmaokeji.com" target="_blank">ŷ߲</a>| <a href="http://xian369.com" target="_blank">ȾƷƵ</a>| <a href="http://5101h.com" target="_blank">޹Ʒһ</a>| <a href="http://yyyy456.com" target="_blank">޾Ʒ㶮</a>| <a href="http://wwwby6682.com" target="_blank">ҹӰ߹ۿ</a>| <a href="http://343119.com" target="_blank">ŷһѹۿ</a>| <a href="http://www-067.com" target="_blank">þһ</a>| <a href="http://8090567.com" target="_blank">ŷպһ</a>| <a href="http://jiazhuangma.com" target="_blank">ŷ</a>| <a href="http://4006616309.com" target="_blank">޹porn</a>| <a href="http://498626.com" target="_blank">Ʒ99þþþþеܿ</a>| <a href="http://taominze.com" target="_blank">ŷ77777</a>| <a href="http://v63xs.com" target="_blank">ȹƷƵ</a>| <a href="http://3644688.com" target="_blank">˳վ߹ۿ</a>| <a href="http://nn99dd.com" target="_blank">ŷ崿Ʒ</a>| <a href="http://easypufu.com" target="_blank">þۺϾɫۺϾ99</a>| <a href="http://imaben.com" target="_blank">ŷպƬ</a>| <a href="http://shaijia123.com" target="_blank">պƷþþ</a>| <a href="http://5110010.com" target="_blank">޸þþ</a>| <a href="http://8331651.com" target="_blank">Ƶַ</a>| <a href="http://59jf.com" target="_blank">պavӰ</a>| <a href="http://pansinobbs.com" target="_blank">պ</a>| <a href="http://filmcameralibrary.com" target="_blank">ŷһ</a>| <a href="http://1390744.com" target="_blank">ŷƷblacked18</a>| <a href="http://sz-changrong.com" target="_blank">Ʒ69ӰԺ</a>| <a href="http://sauske.com" target="_blank">޸Ƶ</a>| <a href="http://2016dp5330.com" target="_blank">ŮСƵ߹ۿ</a>| <a href="http://xian369.com" target="_blank">鶹þþ9ԴƬ</a>| <a href="http://99999zc.com" target="_blank">պҹ</a>| <a href="http://by3787.com" target="_blank">þҹӰԺ</a>| <a href="http://jizzizz.com" target="_blank">Ʒþ7</a>| <a href="http://jldianda.com" target="_blank">߹ۿŷһ</a>| <a href="http://667939.com" target="_blank">һĻ</a>| <a href="http://1x118.com" target="_blank">þѹۿ</a>| <a href="http://84172199.com" target="_blank">ձĻ</a>| <a href="http://dh03.com" target="_blank">þþƷëƬ</a>| <a href="http://susan5.com" target="_blank">Ʒһ˿</a>| <a href="http://959425.com" target="_blank">99Ʒþþþþþþþ</a>| <a href="http://6688se.com" target="_blank">Ʒsɫ</a>| <a href="http://babylonmovi.com" target="_blank">þۺ</a>| <a href="http://sao320.com" target="_blank">ŷպþ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>