• <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>
            還沒(méi)想好
            還沒(méi)想好
            posts - 4,comments - 6,trackbacks - 0
            http://www.gamedev.net/community/forums/topic.asp?topic_id=412504

            No... In true, PVWp is wrong because P,V and W (as Direct3D defines) were created to satisfy the [row vector]*[matrix] multiplying order. In other words, the content of a transformation matrix could be different depending on the multiplying rule.

            For example, consider a translation matrix:

            For a [row vector]*[matrix] multiplying order, it is described as:
            1 0 0 0
            0 1 0 0
            0 0 1 0
            x y z 1
            

            For a [matrix]*[column vector] multiplying order, it is described as:
            1 0 0 x
            0 1 0 y
            0 0 1 z
            0 0 0 1
            

             


            I don't know the math details you're attempting to work out... I'm really bad at formal math theory. I do however know the D3D details of what's going on. Perhaps if I explain what D3D is doing, it'll help you.

            Matrix in memory normally.
            11 12 13 14
            21 22 23 24
            31 32 33 34
            41 42 43 44

            Normally a vector * matrix such a D3DXMatrixTransform will do:
            outx = vec dot (11,21,31,41)
            outy = vec dot (12,22,32,42)
            outz = vec dot (13,23,33,43)
            outw = vec dot (14,24,34,44)

            When you give a matrix to a shader, it is transposed, which offers a small optimization for most matrices, which I'll explain in a bit. After it's transposed, it's stored in 4 constant registers (or 3... I'll get to that).

            c0 = 11,21,31,41
            c1 = 12,22,32,42
            c2 = 13,23,33,43
            c3 = 14,24,34,44

            Next, in the shader performing a "mul(vec,mat)" will do this:
            v0 = input register containing position
            r0 = temp register
            dp4 r0.x, v0, c0 // (r0.x = v0 dot c0)
            dp4 r0.y, v0, c1
            dp4 r0.z, v0, c2
            dp4 r0.w, v0, c3

            As you can see, this is the same as D3DXMatrixTransform. Why does D3D perform a hidden transpose? To save precious constant space. You can declare your matrix as float4x3 and the transformation becomes:
            dp4 r0.x, v0, c0
            dp4 r0.y, v0, c1
            dp4 r0.z, v0, c2
            mov r0.w, (some constant holding 1)

            Any time the matrix isn't a projection, ie: for world, worldview, view, and bones especially, you can drop a constant without affecting the results, as it's always a (0,0,0,1) vector. Back in shader 1.1 with only 96 constants, it was a big deal. If you had 20 bone matrices, that would be either 80 or 60 constants. Personally, I'd take the 60, leaving more room for lights, fog, texture transforms, etc. It also takes time to upload all those useless (0,0,0,1) vectors to the video card, which is another small savings.

            posted @ 2010-07-20 11:25 MDnullWHO 閱讀(511) | 評(píng)論 (0)編輯 收藏
            1): #define YY_NO_UNISTD_H
            2): http://stackoverflow.com/questions/2793413/unistd-h-related-problem-when-compiling-bison-flex-program-under-vc

            isatty is used by the lexer to determine if the input stream is a terminal or a pipe/file. The lexer uses this information to change its caching behavior (the lexer reads large chunks of the input when it is not a terminal). If you know that your program will never be used in an interactive kind, you can add %option never-interactive to you lexer. When the program is run with user input, use %option interactive. When both uses are desired, you can either generate an interactive lexer, which gives a performance loss when used in batch mode, or provide your own isatty function.

            flex.exe --never-interactive
            posted @ 2010-07-05 10:23 MDnullWHO 閱讀(272) | 評(píng)論 (0)編輯 收藏
            記錄從VC6 到 VC8遇到的問(wèn)題和解決辦法
            1) msvcr80d.dll 找不到
             1)) manifest WIN32 set Yes, 2)) ignore msvcrt.lib
             /*
             

            Hi there,

            I read every post in this thread without any help in my case.

            The problem turned out: The DEBUG version was trying to link with BOTH msvcr80.dll and msvcr80d.dll.

            Check if this is the case for you using the "dependency walker" on your executable. If these two are both loaded, then you got the same problem as I did.

            The solution is to set "Properties->Linker->Input->Ignore Specific library" to "msvcrt.lib".

             

            More details below:

            I was compiling and running a program that uses opencv library. One of the libraries in opencv (highgui to be exact) was linking with non-debug versions of some graphics libraries even in its debug version. Apparently this was OK before. 

            This resulted in my debug version program linking with both msvcr80.dll and msvcr80d.dll. It appears this is a problem since the manifest only mentions one of these libraries and the other one (msvcr80.dll) appears not to be found causing the error mentioned in this thread. Why no-one in this thread mentioned that this could be the case is beyond me. I found out about this using "dependency walker" on the .exe that I compile and/or the highgui100d.dll that I load from the library.

            That is the reason the complaint is about msvcr80.dll and not msvcr80d.dll in VS8!!!

            The fix is to re-compile highgui100d.dll (debug version) with Properties->Linker->Input->Ignore Specific library set to singly "msvcrt.dll".

            Just wanted to add this so other people do not waste time as I did...

            Hakan

            */

            2) MFC 
             MFC 從VC6到V8變動(dòng)很大,
            // VC8
            LRESULT CDialogBar::HandleInitDialog(WPARAM, LPARAM)
            {
             Default();  // allow default to initialize first (common dialogs/etc)

             // create OLE controls
             COccManager* pOccManager = afxOccManager;
             if ((pOccManager != NULL) && (m_pOccDialogInfo != NULL))
             {
              if (!pOccManager->CreateDlgControls(this, m_lpszTemplateName,
               m_pOccDialogInfo))
              {
               TRACE(traceAppMsg, 0, "Warning: CreateDlgControls failed during dialog bar init.\n");
               return FALSE;
              }
             }

             return FALSE;
            }

            //VC6
            LRESULT CDialogBar::HandleInitDialog(WPARAM, LPARAM)
            {
             Default();  // allow default to initialize first (common dialogs/etc)

             // create OLE controls
             COccManager* pOccManager = afxOccManager;
             if ((pOccManager != NULL) && (m_pOccDialogInfo != NULL))
             {
              if (!pOccManager->CreateDlgControls(this, m_lpszTemplateName,
               m_pOccDialogInfo))
              {
               TRACE0("Warning: CreateDlgControls failed during dialog bar init.\n");
               return FALSE;
              }
             }

             return TRUE;
            }

            竟然有這么大的區(qū)別,同時(shí)看不懂VC8為什么要那么作

            posted @ 2008-03-15 02:57 MDnullWHO 閱讀(976) | 評(píng)論 (0)編輯 收藏
            最近在用VS 2005寫(xiě)代碼,非常痛苦,VS2005是SB作的,邊寫(xiě)邊罵,總是感覺(jué)VC8的界面是弱智設(shè)計(jì)的,浪費(fèi)了太多了不必要的經(jīng)歷
            VC6 我只有一點(diǎn)不爽,沒(méi)有SOLUTIONG 的概念,幾個(gè)工程合在一起的時(shí)候太笨拙了
            想不出來(lái),界面咋變得那么SB了,保持VC6的風(fēng)格不好么,不過(guò)MS攻關(guān)能力真是夠強(qiáng)大,那么多OPEN SOURCE放棄了VC6,開(kāi)始只發(fā)布VC8的工程文件了
            posted @ 2008-03-12 21:07 MDnullWHO 閱讀(404) | 評(píng)論 (6)編輯 收藏
            僅列出標(biāo)題  
            无码人妻久久一区二区三区| 久久影院综合精品| 久久精品国产第一区二区| 久久久不卡国产精品一区二区| 国产精品欧美久久久久天天影视| 国产高潮国产高潮久久久91| 一本色综合久久| 国产精品禁18久久久夂久| 精品久久久久久久久久久久久久久| 久久久久久久综合日本| 色狠狠久久AV五月综合| yellow中文字幕久久网| 亚洲人成伊人成综合网久久久| 久久久91精品国产一区二区三区 | 一级做a爰片久久毛片看看| 亚洲狠狠婷婷综合久久蜜芽| 欧美亚洲国产精品久久蜜芽| 久久亚洲AV无码精品色午夜 | 91精品观看91久久久久久 | 无码八A片人妻少妇久久| 99精品久久久久中文字幕| 亚洲乱码日产精品a级毛片久久| 97精品国产91久久久久久| 亚洲国产成人久久综合区| 99精品伊人久久久大香线蕉| 99久久精品国内| 久久久一本精品99久久精品88| 人人狠狠综合88综合久久| 国产精品VIDEOSSEX久久发布| 99精品久久精品| 99久久精品费精品国产一区二区| AV无码久久久久不卡蜜桃| 亚洲国产成人乱码精品女人久久久不卡| 久久精品国产精品青草| 久久精品99久久香蕉国产色戒| 欧美成人免费观看久久| 久久午夜无码鲁丝片午夜精品| 国产视频久久| 久久精品国产精品亚洲艾草网美妙 | 久久久久亚洲AV无码专区桃色 | 婷婷伊人久久大香线蕉AV|