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

AstaTus
-- 夏天不熱。。
posts - 22,comments - 12,trackbacks - 0

    這個兩個函數的參數一大堆,害我頭都大了2,3倍。。今天整理下已經能夠大概清晰明白的參數。。
緩存存的是一個屏幕像素的值。。
   先來SetTextureStageState:

   HRESULT SetTextureStageState(
   DWORD Stage,
   D3DTEXTURESTAGESTATETYPE Type,
   DWORD Value
   );

   stage這個參數是指第幾層紋理,1.2.3...9,, 這個版本的dx最多支持9層紋理。
   Type:Defines the type of operation that a texture stage will perform.//定義對該紋理的哪個屬進行設置,值很多。。。
   Value: 指的是前面所選屬性的值

type:
    D3DTSS_ALPHAOP = 4,     //alpha通道的運算,
    D3DTSS_COLOROP = 1,     //顏色的運算
                                                    //這里的op 是operations,指對前面設置的顏色進行運算
                                                   //既后面的2個type:D3DTSS_COLORARG1,D3DTSS_COLORARG2
                                                   //或D3DTSS_ALPHAARG1,D3DTSS_ALPHAARG2 = 6
value:
    D3DTOP_DISABLE = 1,                           //該紋理無效,既不顯示
    D3DTOP_SELECTARG1 = 2,                  //選擇第1個顏色值(既D3DTSS_COLORARG1的值)作為紋理顏色輸出
    D3DTOP_SELECTARG2 = 3,                  //選擇第2個顏色值(既D3DTSS_COLORARG2的值)作為紋理顏色輸出
    D3DTOP_MODULATE = 4,                    //將顏色1和顏色2相乘作為紋理顏色輸出
    D3DTOP_MODULATE2X = 5,               //將顏色1和顏色2相乘后左移1bit(用于增亮)作為紋理顏色輸出 ,
    D3DTOP_MODULATE4X = 6,               //將顏色1和顏色2相乘后左移2bit(用于增亮)作為紋理顏色輸出
    D3DTOP_ADD = 7,                                 //將顏色1和顏色2相加作為紋理顏色輸出
    D3DTOP_ADDSIGNED = 8,                  ///////////后面的參見SDK 都是對2個顏色進行運算
    D3DTOP_ADDSIGNED2X = 9,
    D3DTOP_SUBTRACT = 10,
    D3DTOP_ADDSMOOTH = 11,
    D3DTOP_BLENDDIFFUSEALPHA = 12,
    D3DTOP_BLENDTEXTUREALPHA = 13,
    D3DTOP_BLENDFACTORALPHA = 14,
    D3DTOP_BLENDTEXTUREALPHAPM = 15,
    D3DTOP_BLENDCURRENTALPHA = 16,
    D3DTOP_PREMODULATE = 17,
    D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
    D3DTOP_MODULATECOLOR_ADDALPHA = 19,
    D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
    D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
    D3DTOP_BUMPENVMAP = 22,
    D3DTOP_BUMPENVMAPLUMINANCE = 23,
    D3DTOP_DOTPRODUCT3 = 24,
    D3DTOP_MULTIPLYADD = 25,
    D3DTOP_LERP = 26,
    D3DTOP_FORCE_DWORD = 0x7fffffff,

     
type:
    D3DTSS_COLORARG1 = 2,  
    D3DTSS_COLORARG2 = 3,
    D3DTSS_ALPHAARG1 = 5,
    D3DTSS_ALPHAARG2 = 6,
    D3DTSS_COLORARG0 = 26,
    D3DTSS_ALPHAARG0 = 27,
    D3DTSS_RESULTARG = 28,
value:
     這里的TA指的是texture arguments ,
      D3DTA_CONSTANT             //給當前紋理一個固定的值;
      D3DTA_DIFFUSE;               //diffuse的值作為參數 diffuse 可能有多個來源。。比如材質,vertex
      D3DTA_SELECTMASK         //Mask value for all arguments; not used when setting texture arguments 這句話不理解啊,為什么要偽裝呢  
      D3DTA_SPECULAR             //取spercular 的值作為參數  來源同diffuse
      D3DTA_TEMP                     //待定。。
      D3DTA_TEXTURE              //用紋理的顏色值作為參數
      D3DTA_TFACTOR              //待定。。

 

////////////////////////////////////////////////////////////////////////////////////
以下還沒來得及研究。。貌似叫難懂,還請高人指點啊


D3DTSS_BUMPENVMAT00 = 7,
D3DTSS_BUMPENVMAT01 = 8,
D3DTSS_BUMPENVMAT10 = 9,
D3DTSS_BUMPENVMAT11 = 10,
D3DTSS_TEXCOORDINDEX = 11,
D3DTSS_BUMPENVLSCALE = 22,
D3DTSS_BUMPENVLOFFSET = 23,
D3DTSS_TEXTURETRANSFORMFLAGS = 24,
D3DTSS_CONSTANT = 32,
D3DTSS_FORCE_DWORD = 0x7fffffff,

 


HRESULT SetRenderState(
D3DRENDERSTATETYPE State,     //所要設置的狀態
DWORD Value                   //該狀態的值
);
 
State 的取值
 
 
 
 
 
 
 

 

posted @ 2008-10-08 23:12 AstaTus 閱讀(3272) | 評論 (3)編輯 收藏
      在地形中獲得高度,必須要知道該點所在三角形三個角的坐標和這三個點的高度,然后根據線性插值估算出該點的高度,判斷該點在哪個正方形中,比較容易,只要根據定點之間的間距,和地形的開始坐標就可求出該正方形的左下角頂點,但要再進一步算是哪個三角形,就有一個技巧了,
比如:

當正方形的邊長一樣時,頂點V在哪個三角形中只要判斷坐標點 X + Y是否大于 邊長就可以了。一般地形應該都是直角邊相等的三角型吧。
然后再根據所確定下來的三角形的三個點進行線性插值就可以了。。
posted @ 2008-10-08 15:45 AstaTus 閱讀(397) | 評論 (0)編輯 收藏
   強烈的欲望,我要變強!!吼~~~~~~~~~~~~~~~~~~~~~~~~~
posted @ 2008-10-06 22:08 AstaTus 閱讀(249) | 評論 (1)編輯 收藏
     摘要: 最近看的那本directx 的書的源碼都是用函數,沒用c++的類,用起來超不爽,所以自己來,封裝了下,現在才看到《頂點的顏色》的那章,所以類還很不完整,以后慢慢改進。。 //Base.h/**//////////////////////////////////////////////#ifndef BASE_H#define BASE_H#include <d...  閱讀全文
posted @ 2008-09-20 22:10 AstaTus 閱讀(1364) | 評論 (0)編輯 收藏
      開始看directx了,發現學ogre,還是現弄懂directx會比較好點。

      這個程序主要體現了directx的一個基本的框架。
  1. 在初始化D3D設備后,開始設置頂點緩存,將要顯示的點輸入,
  2.用函數D3DXMatrixPerspectiveFovLH 求投影矩陣,該函數根據視域體的屬性求出投影矩陣
  3.設置頂點渲染的方法,
device->CreateVertexBuffer(3 * sizeof(Vertex), D3DUSAGE_WRITEONLY, D3DFVF_XYZ, D3DPOOL_MANAGED, &Triangle, 0);

    Vertex
* vertices;
    Triangle
->Lock(00,(void**)&vertices, 0);

    vertices[
0= Vertex(-1.0f0.0f2.0f);
    vertices[
1= Vertex(0.0f1.0f2.0f);
    vertices[
2= Vertex(1.0f0.0f2.0f);

    Triangle
->Unlock();

    D3DXMATRIX proj;
    D3DXMatrixPerspectiveFovLH(
&proj, D3DX_PI * 0.5f, (float)800 / (float)6001.0f1000.0f);
    
    device
->SetTransform(D3DTS_PROJECTION, &proj);

    device
->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);


  4.在消息循環函數中
while(msg.message != WM_QUIT)
    
{
        
if(::PeekMessage(&msg, 000, PM_REMOVE)) //////////////這里有個疑惑,什么時候if語句不成立呢
        {
            ::TranslateMessage(
&msg);
            ::DispatchMessage(
&msg);
             }

          
else
        
{    
               
float currTime  = (float)timeGetTime();
               
float timeDelta = (currTime - lastTime)*0.001f;

                ptr_display(timeDelta);

               lastTime 
= currTime;
           }

    }
這里是場景的渲染
device->Clear(00, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff1.0f0);

        device
->BeginScene();

        device
->SetStreamSource(0, Triangle, 0sizeof(Vertex));   //將Vertexbuffer中的頂點倒入到流當中
        device
->SetFVF(Vertex::FVF); //設置頂點的格式  FVF已被我賦值為 FVF_XYZ
 
        device
->DrawPrimitive(D3DPT_TRIANGLELIST, 01); //圖元類型 三角形 個數為一個

        device
->EndScene();

        
// Swap the back and front buffers.
        device->Present(0000);
posted @ 2008-09-18 20:30 AstaTus 閱讀(288) | 評論 (0)編輯 收藏
   今天寫的一個程序,很奇怪,我要讓每個ball的M_CurLoc的值都不一樣,但是單步調試的時候是做到了不一樣,但直接運行的時候結果每個ball的M_CurLoc的值居然都一樣,喊我調了2個多小時。。抓狂ing。。
后來發現是隨機數里的srand在作怪
void Balloon::Loc_Reset()
{
        srand(time(NULL));
    M_CurLoc.x 
= rand()%700 + 100;
    M_CurLoc.y 
= rand()%700 + 600;
    flag 
= UP;

}


for(i = 0; i < n; i++)
{
    tempball.Loc_Reset();

    M_ActBall.push_back(tempball);    

}
這個代碼實現的n個ball 中的 M_CurLoc都是一樣的,因為CPU運行太快 以致每一次尋環中srand(time(NULL))所取得的系統時間都一樣。。(srand的精度為秒),所以在調試和直接運行這兩種情況下會出現兩種結果。。
最后改了下
void Balloon::Loc_Reset()
{
    M_CurLoc.x 
= rand()%700 + 100;
    M_CurLoc.y 
= rand()%700 + 600;
    flag 
= UP;

}


void Balloon::GetSrand()
{
    srand(time(NULL));

}


////////////////////////////////////

tempball.GetSrand();

for(i = 0; i < n; i++)
{
    tempball.Loc_Reset();

    M_ActBall.push_back(tempball);    

}
posted @ 2008-09-10 19:13 AstaTus 閱讀(262) | 評論 (0)編輯 收藏
   這個是攝像機繞食人魔頭的一個demo,
其中的關鍵就在于攝像機的自動繞行 和 攝像機一直朝向食人魔頭,

ogre這引擎似乎什么都幫你想到了,很多的函數都已封裝好,就怕你找不到

以下的是這個demo關鍵代碼,都是在createscene里的,我給了下具體的解釋:
// Make sure the camera track this node
        mCamera->setAutoTracking(true, headNode);    //這里讓攝像機總是朝著魔頭

        // Create the camera node & attach camera
        SceneNode* camNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
        camNode
->attachObject(mCamera);

        
// set up spline animation of node
        Animation* anim = mSceneMgr->createAnimation("CameraTrack"10);    //這里的10指代這個攝像機繞一圈要花10秒鐘,至于這10秒鐘怎么分,在下面關鍵幀設置中會分配

        
// Spline it for nice curves
        anim->setInterpolationMode(Animation::IM_LINEAR); //設置兩點間移動時的插值類型,有線型和弧線型兩種,什么效果大家自個試吧
        
// Create a track to animate the camera's node
//以下就要設置相機繞行的軌跡了
        NodeAnimationTrack* track = anim->createNodeTrack(0, camNode);
        
// Setup keyframes
//關鍵幀就10幀,這與動畫的總時間10剛好對應
        TransformKeyFrame* key = track->createNodeKeyFrame(0); // startposition
        key = track->createNodeKeyFrame(2.5);
        key
->setTranslate(Vector3(500,500,-1000));
        key 
= track->createNodeKeyFrame(5);
        key
->setTranslate(Vector3(-1500,1000,-600));
        key 
= track->createNodeKeyFrame(7.5);
        key
->setTranslate(Vector3(0,-100,0));
        key 
= track->createNodeKeyFrame(10);
        key
->setTranslate(Vector3(0,0,0));
        
// Create a new animation state to track this
        mAnimState = mSceneMgr->createAnimationState("CameraTrack");
        mAnimState
->setEnabled(true);
關鍵幀設置的那8行代碼其實就是說從0~2.5秒 攝像機從起始點移動到(500, 500, -1000),后面幾行同理


該demo中的createplane函數還是有點不明白
 MeshPtr createPlane(
            const String& name, const String& groupName, const Plane& plane,
            Real width, Real height,
            int xsegments = 1, int ysegments = 1,
            bool normals = true, int numTexCoordSets = 1,
            Real uTile = 1.0f, Real vTile = 1.0f,   //這個tile啥意思啦??????????????????
 const Vector3& upVector = Vector3::UNIT_Y,
   HardwareBuffer::Usage vertexBufferUsage = HardwareBuffer::HBU_STATIC_WRITE_ONLY,
   HardwareBuffer::Usage indexBufferUsage = HardwareBuffer::HBU_STATIC_WRITE_ONLY,
   bool vertexShadowBuffer = true, bool indexShadowBuffer = true);
posted @ 2008-09-07 20:45 AstaTus 閱讀(1116) | 評論 (0)編輯 收藏
      發現3D這東西還是蠻好玩的,尤其是有了3D的ogre引擎以后。今天一口氣看到了基礎教程4.。。 
      到現在為止,就接觸了一個Application 類 和 frameListener類

Application類繼承了 ExampleApplication,主要是一些場景的資源載入 和 資源的設置 還有最重要的渲染函數
frameListener類繼承了ExampleFrameListener,  OIS::MouseListener, OIS::KeyListener。 后兩個是外部類,不屬于ogre內部
這兩個類主要用于鍵盤和鼠標的監聽,雖然還沒了解它內部的運行機制,不過感覺有點像 單片機里的中斷,過幾天基礎
玩熟了,去研究下。^_^

除以上兩個類外
目前遇到比較重要的幾個類有:SceneManger,  Root, Camera, ViewPort (現在還沒弄清楚Camera, ViewPort 之間的關系),Entity
Light, SceneNode。。。


場景節點在控制實體旋轉的時候,它是以自己的局部坐標系為標準的
Entity *ent = mSceneMgr->createEntity( "Robot""robot.mesh" );
       SceneNode 
*node = mSceneMgr->getRootSceneNode()->createChildSceneNode( "RobotNode", Vector3( -10000 )  );
       node
->attachObject( ent );

       node
->yaw( Degree( -90 ) );


這含代碼的最后一行就是以ent實體中心為坐標原點的坐標系旋轉的。。

如果要繞某一個軸旋轉捏?嘎嘎



posted @ 2008-08-15 21:16 AstaTus 閱讀(369) | 評論 (0)編輯 收藏
  以前小梅老師教C++的時候,沒有涉及到過DLL,已至現在看DLL超累。。。雖然看上去那本《VC++動態鏈接庫深入淺出》只有很少的幾頁,但代碼稍有不對,就出錯,尤其是在鏈接上,。。。汗個。。

剛才花了大把時間寫的個例子

//useyumen.cpp

#include 
<stdio.h>
#pragma comment(lib, 
"..\\yumen\\Debug\\yumen.lib")

extern"C" __declspec(dllimport) Add(int x, int y);

int main()
{
 printf(
"%d", Add(35));
 
return 0;
}


/**///////////////////以下是console 的 DLL工程

//yumen.h
#ifndef YUMEN_H
#define YUMEN_H
extern "C" int __declspec(dllexport) Add(int x, int y);

#endif

//yumen.cpp
#include "yumen.h"

int Add(int x, int y)
{
    
return x + y;
}



發現如果是類的DLL,調用起來比較方便。。。 

 
posted @ 2008-08-04 22:41 AstaTus 閱讀(244) | 評論 (0)編輯 收藏

      在一個類中定義了一個引用類型的變量,他的初始化不能放在構造函數中,也不能放在其他的函數中,只能放在一個神秘的角落--構造函數的初始化列表中。。嘎嘎
   
  

#include <iostream.h>


int i = 9;

class A
{
    
protected:
    
int &m;
    
    
public:
    A():m(i)   
//將i賦給引用變量m
    {
        cout
<<m<<endl;
    }

}
;

void main()
{
    A a;

}


 

posted @ 2008-08-01 10:52 AstaTus 閱讀(783) | 評論 (1)編輯 收藏
僅列出標題
共3頁: 1 2 3 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产手机视频一区二区| 夜夜嗨av一区二区三区| 韩国欧美一区| 欧美一区三区二区在线观看| 午夜亚洲视频| 国产精品一区二区在线观看| 亚洲嫩草精品久久| 久久精品成人一区二区三区| 国内精品久久久久久久影视蜜臀| 欧美在现视频| 麻豆精品视频在线观看| 国产精品国产三级国产| 亚洲欧美成人精品| 久久久综合网| 一区精品久久| 欧美大片在线看| 亚洲三级免费| 欧美亚洲免费电影| 狠狠色2019综合网| 麻豆9191精品国产| 亚洲激情电影在线| 99天天综合性| 国产精品最新自拍| 久久中文精品| 日韩视频不卡中文| 久久成人免费日本黄色| 在线观看视频免费一区二区三区| 欧美成人影音| 亚洲一区二区三区高清| 久久一区二区精品| 一本色道久久综合狠狠躁篇的优点 | 欧美劲爆第一页| 日韩视频在线一区二区三区| 午夜精品视频网站| 在线播放日韩欧美| 国产精品v片在线观看不卡| 西西裸体人体做爰大胆久久久| 免费观看成人| 亚洲女人天堂av| 黄色成人小视频| 欧美日韩精品在线观看| 久久都是精品| 99精品国产福利在线观看免费| 久久久国产精品一区| 99av国产精品欲麻豆| 国产美女一区二区| 欧美激情视频网站| 欧美在线观看你懂的| 亚洲精品国产无天堂网2021| 久久黄色影院| 亚洲综合国产激情另类一区| 在线观看欧美精品| 国产精品有限公司| 欧美激情亚洲综合一区| 午夜精品久久久久久久久久久| 亚洲欧洲三级电影| 欧美精品性视频| 午夜精品福利在线| 99精品热视频只有精品10| 欧美r片在线| 久久国产欧美日韩精品| 日韩午夜剧场| 亚洲电影免费观看高清完整版在线 | 久久国产福利国产秒拍| 亚洲天堂av电影| 91久久在线播放| 欧美成人免费一级人片100| 欧美一区二区| 亚洲欧美国产精品桃花| 99pao成人国产永久免费视频| 伊人久久大香线| 国产一区二区三区丝袜| 国产精品一级| 国产精品香蕉在线观看| 欧美日韩一区二| 欧美噜噜久久久xxx| 欧美成人午夜影院| 免费观看30秒视频久久| 久久国产色av| 久久精品中文字幕一区二区三区 | 91久久精品一区二区别| 免费不卡在线观看| 狂野欧美一区| 久久久久久亚洲精品中文字幕| 亚洲欧美国产精品桃花| 亚洲免费在线精品一区| 日韩性生活视频| 在线观看亚洲精品| 伊人久久久大香线蕉综合直播 | 欧美a级片一区| 免费欧美日韩国产三级电影| 久久全国免费视频| 久久综合久久综合九色| 久久久www成人免费毛片麻豆| 亚洲一区二区在线| 亚洲特级毛片| 亚洲一区久久久| 亚洲欧美日韩国产成人精品影院| 亚洲小少妇裸体bbw| 亚洲一区视频| 久久成人一区| 麻豆av一区二区三区久久| 欧美高清在线一区二区| 亚洲成色精品| 最新69国产成人精品视频免费| 亚洲激情欧美| 亚洲一二三区在线| 欧美怡红院视频| 麻豆乱码国产一区二区三区| 欧美电影免费网站| 国产精品久久久久久一区二区三区| 欧美女主播在线| 欧美巨乳在线| 国产嫩草影院久久久久| 国内精品久久久久影院色| 亚洲电影欧美电影有声小说| 亚洲高清在线精品| 一区二区三区国产精品| 亚洲香蕉网站| 久久精品国产亚洲aⅴ| 欧美国产精品中文字幕| 99re6热只有精品免费观看 | 亚洲欧美日韩区| 一本色道久久综合亚洲精品按摩 | 99国产精品国产精品久久| 亚洲一区二区三区四区中文| 久久成人精品| 亚洲国产精品一区二区www| 亚洲在线免费观看| 免费观看30秒视频久久| 国产精品美女久久| 激情亚洲网站| 亚洲综合第一页| 欧美激情a∨在线视频播放| 一区二区三区国产精华| 久久久噜噜噜| 国产精品腿扒开做爽爽爽挤奶网站| 激情成人av在线| 亚洲一区在线播放| 欧美福利在线| 亚洲欧美一级二级三级| 欧美韩国一区| 在线国产亚洲欧美| 久久精品视频在线免费观看| 亚洲一区二区成人| 国产精品国产a级| 亚洲视频大全| 一本色道久久综合狠狠躁篇的优点 | 亚洲最新视频在线| 欧美片第1页综合| 亚洲国产精品一区在线观看不卡| 久久精品国产精品亚洲| 午夜国产精品影院在线观看| 国产精品久久久久久久久久免费看| 亚洲作爱视频| 亚洲九九精品| 欧美老女人xx| 一区二区高清在线观看| 亚洲理论在线| 欧美新色视频| 欧美一区二区在线免费观看| 亚洲香蕉成视频在线观看| 国产精品www.| 欧美怡红院视频| 久久国产精品久久久| 国产欧美亚洲视频| 久久九九国产精品| 久久精品视频亚洲| 亚洲国产精品va在线观看黑人| 男人插女人欧美| 欧美国产视频在线| 亚洲手机成人高清视频| 亚洲小说欧美另类婷婷| 国产女主播一区二区| 久久阴道视频| 男人的天堂成人在线| aaa亚洲精品一二三区| 中文在线资源观看网站视频免费不卡| 久久夜色精品亚洲噜噜国产mv| 久久夜色精品亚洲噜噜国产mv| 亚洲国产婷婷香蕉久久久久久99 | 久久精品视频免费播放| 亚洲激情精品| 99精品视频一区| 国产一区99| 欧美高清你懂得| 欧美图区在线视频| 久久久999精品免费| 暖暖成人免费视频| 亚洲一区制服诱惑| 久久成人人人人精品欧| 亚洲美女中文字幕| 日韩视频永久免费| 国产一区二区按摩在线观看| 欧美成人一区二区三区片免费| 欧美色综合天天久久综合精品| 久久精品午夜| 欧美日韩国产精品一区| 久久精品国产第一区二区三区| 免费在线欧美黄色|