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

戰魂小筑

討論群:309800774 知乎關注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

   :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

#

在Windows XP下, 在任何磁盤里,創建一個文件,再復制粘貼,就會生成一個新的拷貝.文件名中有個詞叫:"復件"

但是感覺這個詞貌似是學多了英語后的人硬拼出來的,時間長了,大家習慣了這個叫法,這個詞也就出來了.

在Windows Vista或者Windows 7里,這個詞變成了 "副本", 估計是微軟也發現"復件"這個詞不是很正規或者讓人接受而換的

:)

posted @ 2010-04-16 17:20 戰魂小筑 閱讀(1773) | 評論 (1)編輯 收藏

OGRE 中的3種層次實現多線程渲染的文檔:

http://isdlibrary.intel-dispatch.com/vc/1632/Threading_OGRE3D.pdf

 

ATI有關多線程效率提升的游戲比較及一些tips

http://developer.amd.com/assets/ATIMThread.pdf

posted @ 2010-04-15 16:06 戰魂小筑 閱讀(1781) | 評論 (1)編輯 收藏

從Windows XP SP2通過Windows Updates 的SP3推送更新到SP3并不是真正意義上的SP3. 至少發現有以下兼容問題:

1. RenderMonkey 1.82 在這種升級版本下會啟動會報MSXML錯誤

2. VS2010 安裝完成后, C#和WPF工程都無法正常創建,打開vs2008及老的sln,project都會出現卡死,甚至崩潰的錯誤. 估計也是MSXML的問題

 

 

解決方法:安裝Windows 更高版本或者直接使用原生Windows SP3

posted @ 2010-04-14 15:53 戰魂小筑 閱讀(1654) | 評論 (2)編輯 收藏

名稱:Chrome Stylist

地址:https://chrome.google.com/extensions/detail/pabfempgigicdjjlccdgnbmeggkbjdhd?hl=zh-cn

安裝好后,在StyleList的選項里找到Styles選項卡,將里面其他的刪除,新建一個Style,點上All Site,在黑色欄里填入一個你喜歡的名字,在css內容里填入

html, body, * {
font-family: "微軟雅黑" ! important;
}

點擊下面的save存盤,刷新其他網站,地址欄最右邊出現彩虹的圖標就表示工作正常了

have fun, :)

posted @ 2010-04-11 12:49 戰魂小筑 閱讀(2510) | 評論 (1)編輯 收藏

假設我們有3個工程及其工程類型:

CORE              DLL

ENGINE           DLL

GAME             EXE

D3DRENDER      DLL

其中D3DRENDER是GAME動態載入的,其需要鏈接CORE,ENGINE

這是一個很常見的模式,但是不好的是,因為CORE和ENGINE均是DLL,代碼中的Symbol都被導出才可使用。任何人使用DEPENDENCE工具就可以將DLL中引用的東西查看的清楚,雖然這不至于造成技術泄漏,但從速度和DLL大小來說都是不劃算的。

現在很多游戲主exe一般都是10M+甚至20M+的大exe,這都是使用靜態鏈接而成。但是對代碼結構也必須做出一定的調整。所有工程必須都是靜態庫,這樣才能保證像CORE這樣的靜態庫中的全局/靜態變量不至于被鏈接2份而造成內存段邏輯錯誤。

當然,使用全靜態庫還需要注意一點:所有的lib都是在最后的game工程里來做鏈接。

posted @ 2010-04-07 16:08 戰魂小筑 閱讀(2240) | 評論 (2)編輯 收藏

轉載自 獨立游戲中文論壇

UDK是unrealengine develpoment kit 的縮寫,簡單來說就是大名鼎鼎的虛幻3引擎的免費商業版本.不過虛幻3畢竟還是4年前的dx9的入門級引擎,在商業上取得
巨大成功,技術上也顯得落后.目前Epic想榨干虛幻3的最后一點潛力,于是干脆發布了這個免費版本.任何人都可以用UDK開發游戲,但是如果游戲牟利的話每年還是要向
Epic交納一定數量的技術授權費用的.先不管這個,還是來看看它的官方視頻教程吧.
  [attach]44[/attach]
鏈接如下:  
http://udn.epicgames.com/Three/VideoTutorials.html
一共5個教程 從引擎配置介紹開始,到關卡和人物編輯器,以及最后一個完整的小游戲的制作,對于入門來說完全足夠了.
視頻說的還比較詳細,聽力不好的同學可以對照下開發文檔 http://www.udk.com/documentation 里面基本說的很詳細.
最后附上UDK的下載地址: March 2010 UDK Beta (548 MB .exe) 
好了,UDK對于初學者來說還是比較適合的.對于游戲的開發人員來說引擎的整體架構還是很值得學習的.希望你學的愉快.

posted @ 2010-04-07 10:36 戰魂小筑 閱讀(2843) | 評論 (4)編輯 收藏

RenderTarget完成后,開始模擬OGRE的Compositor。

OGRE的Compositor其實就是用于解決繪制PostEffect的,簡單的說,就是一種RenderTarget的流程控制腳本

這是OGRE compositor文件的片段

compositor Bloom
{
    technique
    {
        // Temporary textures
        texture rt_output target_width target_height PF_R8G8B8
        texture rt0 target_width_scaled 0.25 target_height_scaled 0.25 PF_R8G8B8
        texture rt1 target_width_scaled 0.25 target_height_scaled 0.25 PF_R8G8B8
 
        target rt_output
        {
            // Render output from previous compositor (or original scene)
            input previous
        }
 
        target rt0
        {
            // Start with clear texture
            input none
            // Horizontal blur pass
            pass render_quad
            {
                // Renders a fullscreen quad with a material
                material Ogre/Compositor/BrightPass2
                input 0 rt_output
            }
        }
 
        target rt1
        {
            // Start with clear texture
            input none
            // Horizontal blur pass
            pass render_quad
            {
                // Renders a fullscreen quad with a material
                material Ogre/Compositor/BlurV
                input 0 rt0
            }
        }
 
        target rt0
        {
            // Start with clear texture
            input none
            // Horizontal blur pass
            pass render_quad
            {
                // Renders a fullscreen quad with a material
                material Ogre/Compositor/BlurH
                input 0 rt1
            }
        }
 
        target_output
        {
            // Start with clear output
            input none
            // Draw a fullscreen quad
            pass render_quad
            {
                // Renders a fullscreen quad with a material
                material Ogre/Compositor/BloomBlend2
                input 0 rt_output
                input 1 rt0
            }
        }
    }
}

 

大概我們知道,一個Compositor分為資源定義與繪制步驟(target xxx)

而一個繪制步驟又分別定義:

1. (輸入)繪制的是什么東西?

2. (效果)繪制成什么樣子?

3. (輸出)往哪里繪制?

輸出方式在這個例子有2種:紋理(RT)和屏幕

輸入方式有2中:紋理及場景

我們可以使用一個回調來對一個繪制步驟提供繪制輸入

繪制效果就是一大堆的Shader,這些shader都是基于一個quad來做的,也就是一個矩形,使用變換后的頂點和一個紋理坐標作為頂點定義

不過這里是不需要做vertexshader的,僅僅ps足矣。

繪制的最后,是將前面繪制的RT(紋理)混合起來

當然,如果步驟比較多和復雜時,RT之間跟寄存器一樣,可以反復使用

YR7HEX8VAB[67GPOWLNPIBA

顯示茶壺法線的場景加上 Blur 的PostEffect

<?xml version="1.0" encoding="gb2312" ?>
<Compositor name = "bloom" >
  <Resource>
    <RenderTarget name ="rt_source" size="screenquad" />
    <RenderTarget name ="rt0" size="screenquad" />
    <RenderTarget name ="rt1" size="screenquad" />
  </Resource>
  <Step target="rt_source">
    <Geometry type ="callback" callback = "rt_input"/>
  </Step>
  <Step target="rt0">
    <Geometry type = "screenquad"/>
    <Effect name ="material\blurH.xml">
      <Texture name ="mTexture" value ="rt_source" />
    </Effect>
  </Step>
  <Step target="rt1">
    <Geometry type = "screenquad"/>
    <Effect name ="material\blurV.xml">
      <Texture name ="mTexture" value ="rt_source" />
    </Effect>
  </Step>
  <Step>
    <Geometry type = "screenquad"/>
    <Effect name ="material\combine.xml">
      <Texture name ="mTexture1" value ="rt0" />
      <Texture name ="mTexture2" value ="rt1" />
    </Effect>
  </Step>
</Compositor>
這是我的引擎里的Compositor腳本,還在慢慢加強功能,希望能有一天達到OGRE的Compositor功能
posted @ 2010-04-01 18:56 戰魂小筑 閱讀(2865) | 評論 (1)編輯 收藏

如果讓你的引擎結構支持多個RenderTarget繪制及多個Viewport?這里是我的簡單設計:

同樣適用我的文本設計圖標準(+為包含,  <為派生)

 

RenderTexture

      RenderTarget

          <ScreenTarget(引擎啟動時,初始化屏幕大小的Viewport)

          +RenderView (對于一個RT,可以是屏幕,可以是紋理RT,所以可以擁有 1~n個切分視圖 )

               +Camera

               +Viewport

 

以下是多View繪制的類XNA偽代碼

 

Engine.Run()
{
    Device.Clear()
 
    // 保存當前全屏Viewport
    ScreenViewport = Device.CurrentViewport
 
    Device.BeginScene()    
 
    // 遍歷當前屏幕RT下的所有View
    foreach RenderView in ScreenRT
    {
        // 未激活的View不用繪制
        if RenderView not active then continue
 
        // 將View對應的Viewport提交到設備        
        RenderView.CommitViewport()
 
        // 渲染回調
        foreach RenderEventListener in RenderEventListenerList
        {
            RenderEventListener.OnRenderFrame()
        }
    }
 
    Device.EndScene()
 
     Device.Present()
 
    Device.CurrentViewport = ScreenViewport // 恢復全屏viewport
}

 

 

以下是RT間嵌套繪制的偽代碼:

RenderView.SwitchRenderTarget(stage, RenderTarget)
{
    // 保存繪制前的RT
    PreTarget = Device.GetRenderTarget()
    // 設置為當前的RT
    Device.SetRenderTarget( RenderTarget )
 
    // 更新RT攝像機
    RenderTarget.UpdateCamera()    
    
    // 清空RT
    Device.Clear()
 
    // 繪制回調
    RenderTarget.OnRender( )
 
    // 恢復之前的RT
    Device.SetRenderTarget( PreTarget  );
}
posted @ 2010-03-29 18:16 戰魂小筑 閱讀(2213) | 評論 (0)編輯 收藏

完成自己的shader系統后,翻出之前寫過的代碼中發現有一個地方很奇怪

我的矩陣定義跟OGRE的沒什么區別

        union 
        {
            struct
            {
                float m11, m12, m13, m14;
                float m21, m22, m23, m24;
                float m31, m32, m33, m34;
                float m41, m42, m43, m44;
            };
            float m[4][4];
        };

   乘法也跟OGRE的一模一樣,但在將view及project乘好的矩陣送給HLSL時,卻必須轉置下,才能得到正確的結果

mSkinnedEffect.mMatrix.mValue = (camera.mViewMatrix * camera.mProjectMatrix).Transpose();

shader:

float4 localpos = mul(In.Position, skinTransform);

 

    OGRE中有這么一段代碼及注釋:

    const Matrix4& AutoParamDataSource::getProjectionMatrix(void) const
    {
        if (mProjMatrixDirty)
        {
            // NB use API-independent projection matrix since GPU programs
            // bypass the API-specific handedness and use right-handed coords
            if (mCurrentRenderable && mCurrentRenderable->getUseIdentityProjection())
            {
                // Use identity projection matrix, still need to take RS depth into account.
                RenderSystem* rs = Root::getSingleton().getRenderSystem();
                rs->_convertProjectionMatrix(Matrix4::IDENTITY, mProjectionMatrix, true);
            }
            else
            {
                mProjectionMatrix = mCurrentCamera->getProjectionMatrixWithRSDepth();
            }
            if (mCurrentRenderTarget && mCurrentRenderTarget->requiresTextureFlipping())
            {
                // Because we're not using setProjectionMatrix, this needs to be done here
                // Invert transformed y
                mProjectionMatrix[1][0] = -mProjectionMatrix[1][0];
                mProjectionMatrix[1][1] = -mProjectionMatrix[1][1];
                mProjectionMatrix[1][2] = -mProjectionMatrix[1][2];
                mProjectionMatrix[1][3] = -mProjectionMatrix[1][3];
            }
            mProjMatrixDirty = false;
        }
        return mProjectionMatrix;
    }

貌似是跟左右手這個惡心的東西有關系

回看DirectXSDK中提供的BasicHLSL例子

        mWorld = g_mCenterWorld * *g_Camera.GetWorldMatrix();
        mProj = *g_Camera.GetProjMatrix();
        mView = *g_Camera.GetViewMatrix();
 
        mWorldViewProjection = mWorld * mView * mProj;
 
        V( g_pEffect->SetMatrix( "g_mWorldViewProjection", &mWorldViewProjection ) );

shader:

Output.Position = mul(vAnimatedPos, g_mWorldViewProjection);

絲毫無需轉置矩陣,Effect接口中也提供有SetMatrixTranspose這類方法。所以排除內部有自動轉置的嫌疑。

詢問過野豬這個問題,野豬答曰:"轉置后傳輸至需要傳3個vector, 最后一個是[0 0 0 1]”

有達人知道的,可以指點下迷津 :)

posted @ 2010-03-17 11:08 戰魂小筑 閱讀(2715) | 評論 (2)編輯 收藏

自己保留這篇文章:

http://static.icybear.net/[CN]Programmer%20competency%20matrix.htm

 

很好的程序員自測的文章

posted @ 2010-03-12 22:22 戰魂小筑 閱讀(382) | 評論 (0)編輯 收藏

僅列出標題
共26頁: First 14 15 16 17 18 19 20 21 22 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>
            欧美一区二区在线看| 亚洲欧美bt| 亚洲一区视频在线| 99国产一区| 99亚洲一区二区| 亚洲老司机av| 99re热这里只有精品免费视频| 亚洲精品日韩在线| 在线亚洲一区二区| 午夜精品国产精品大乳美女| 欧美在线观看一区二区| 毛片av中文字幕一区二区| 欧美国产日韩一区二区| 亚洲精品在线观看免费| 亚洲伊人色欲综合网| 久久成人免费电影| 欧美成人视屏| 国产精品久久久久秋霞鲁丝 | 正在播放亚洲| 亚洲午夜国产一区99re久久| 久久精品成人| 欧美激情日韩| 亚洲视频你懂的| 久久久精品国产免费观看同学 | 欧美顶级艳妇交换群宴| 欧美视频在线观看 亚洲欧| 国产视频久久网| 亚洲美女视频在线免费观看| 香蕉av福利精品导航| 欧美国产一区在线| 午夜精品网站| 欧美三区在线观看| 亚洲国产高清一区二区三区| 中国日韩欧美久久久久久久久| 久久精品视频在线播放| 亚洲日韩欧美视频一区| 日韩一二三在线视频播| 久久福利一区| 国产精品视频一区二区高潮| 亚洲日本中文字幕| 久热这里只精品99re8久| 亚洲午夜电影在线观看| 欧美大片第1页| 在线免费不卡视频| 久久精品一区二区三区中文字幕| 日韩午夜视频在线观看| 欧美顶级大胆免费视频| 亚洲国产高清在线| 久久伊人免费视频| 亚洲欧美国产三级| 国产精品国产a级| 99re视频这里只有精品| 欧美成人午夜影院| 久久精品麻豆| 激情视频一区二区| 久久久91精品国产| 性久久久久久久久久久久| 欧美日韩一区三区四区| 一本色道久久综合亚洲精品婷婷 | 欧美日韩精品一区二区| 亚洲人成网站影音先锋播放| 久久久精品午夜少妇| 亚洲主播在线观看| 国产精品美女| 亚洲欧美在线一区二区| 中国成人黄色视屏| 欧美性做爰毛片| 亚洲欧美日韩国产综合在线| 亚洲无限av看| 国产视频一区三区| 欧美日韩午夜在线| 欧美日韩国产999| 一区二区在线视频播放| 久久久欧美一区二区| 欧美一区二区三区四区在线| 国产日产高清欧美一区二区三区| 午夜一区二区三视频在线观看| 亚洲桃花岛网站| 国产九九视频一区二区三区| 午夜精品一区二区三区四区 | 一区二区三区高清不卡| 欧美丝袜第一区| 欧美亚洲综合另类| 欧美一区二区三区免费看| 精品9999| 亚洲人线精品午夜| 国产精品乱码一区二三区小蝌蚪| 欧美一级在线视频| 久久成人精品无人区| 亚洲欧洲一区二区在线观看| 亚洲人成小说网站色在线| 国产精品你懂的在线| 浪潮色综合久久天堂| 欧美日韩国产三区| 欧美在线播放| 欧美电影免费观看网站| 性欧美办公室18xxxxhd| 老牛嫩草一区二区三区日本 | 中文av字幕一区| 亚洲一区在线视频| 1000部精品久久久久久久久| 99国产精品| 国产一区二区三区不卡在线观看 | 亚洲欧洲另类| 亚洲一区亚洲二区| 日韩午夜精品| 久久九九免费视频| 亚洲视频欧美视频| 久久久久国产精品一区| 亚洲一区二区三区激情| 久久五月天婷婷| 午夜精品久久久久久久99热浪潮| 久久久久中文| 午夜精品视频| 欧美日韩免费观看一区| 噜噜噜噜噜久久久久久91| 欧美四级电影网站| 亚洲国产高清aⅴ视频| 国产一区二区欧美| 亚洲亚洲精品三区日韩精品在线视频| 亚洲国产精品久久久久秋霞影院| 亚洲免费在线观看| 亚洲一区国产| 欧美三级视频在线观看| 亚洲经典三级| 亚洲国产精品久久精品怡红院| 99这里只有精品| 亚洲电影免费观看高清完整版在线观看 | 亚洲一区综合| 欧美激情在线有限公司| 卡通动漫国产精品| 国产啪精品视频| 中文亚洲欧美| 亚洲性人人天天夜夜摸| 欧美区亚洲区| 日韩午夜激情av| 一本色道久久综合亚洲精品小说| 老司机亚洲精品| 欧美chengren| 亚洲电影免费观看高清完整版在线观看| 欧美一级成年大片在线观看| 午夜视频一区在线观看| 国产精品v亚洲精品v日韩精品| 日韩视频国产视频| 在线亚洲欧美| 国产精品美女久久久| 亚洲在线视频| 久久久噜噜噜久噜久久| 国产综合色产在线精品| 久久精品噜噜噜成人av农村| 牛牛国产精品| 日韩亚洲一区在线播放| 欧美日韩精品一区二区在线播放| 最新亚洲电影| 一区二区三区免费看| 欧美性生交xxxxx久久久| 一本色道久久88亚洲综合88| 亚洲伊人观看| 在线观看国产欧美| 欧美激情在线狂野欧美精品| 一区二区三区 在线观看视| 午夜在线精品偷拍| 韩国精品久久久999| 久久一本综合频道| 亚洲理伦电影| 久久久亚洲国产美女国产盗摄| 亚洲国产美女| 国产精品黄页免费高清在线观看| 午夜久久影院| 欧美黄色aa电影| 亚洲丝袜av一区| 狠狠网亚洲精品| 欧美伦理在线观看| 午夜精品网站| 亚洲美女中出| 久久综合伊人77777麻豆| 亚洲美女av网站| 国产视频久久久久久久| 欧美激情国产日韩精品一区18| 一本综合久久| 男同欧美伦乱| 久久国产精彩视频| 亚洲肉体裸体xxxx137| 国产精品美女主播| 免费人成网站在线观看欧美高清| 亚洲一区免费看| 亚洲欧洲视频在线| 久久蜜桃精品| 亚洲欧美中文另类| 亚洲一区二区三区欧美| 在线观看亚洲视频| 国产精品国产三级国产普通话三级| 欧美在线视频免费| 亚洲人体大胆视频| 久热精品视频在线观看一区| 亚洲男人av电影| 亚洲精品视频一区| 国内揄拍国内精品久久| 国产精品久久久久久久久免费桃花 | 欧美成人在线影院|