亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 構建高級粒子系統.htm

?? 3D圖象編程中粒子系統相關的一些資料。包括通用粒子系統的原理
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
                  particles within the specific system will have the same 
                  texture assigned.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">BlendMode</TD>
                <TD class=ColorCode vAlign=top width="19%">blendMode</TD>
                <TD class=EtoC vAlign=top width="63%">The blend mode you want 
                  to use for the particles. Smoke will probably have a different 
                  blend mode from blood-that's the reason you also store the 
                  blend mode for each particle system.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">int</TD>
                <TD class=ColorCode vAlign=top width="19%">systemType</TD>
                <TD class=EtoC vAlign=top width="63%">A unique ID, which 
                  represents the type of system (smoke or sparks, for example). 
                  The systemType identifier is also required, since you may want 
                  to check for a specific type of particle system within the 
                  collection of all systems. For example, to remove all smoke 
                  systems, you need to know whether a given system is a smoke 
                  system or not.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">Array Particle</TD>
                <TD class=ColorCode vAlign=top width="19%">particles</TD>
                <TD class=EtoC vAlign=top width="63%">The collection of 
                  particles within this system. This may also be a linked list 
                  instead of an array.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">Array PShape</TD>
                <TD class=ColorCode vAlign=top width="19%">shapes</TD>
                <TD class=EtoC vAlign=top width="63%">A collection of shapes, 
                  describing the shapes of the particles. The shape descriptions 
                  of the particles usually consist of four positions in 3D 
                  camera-space. These four positions are used to draw the two 
                  triangles for our particle. As you can see in Table 1, a 
                  particle is only stored as a single position, but it requires 
                  four positions (vertices) to draw the texture-mapped shape of 
                  the particle.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">int</TD>
                <TD class=ColorCode vAlign=top width="19%">nrAlive</TD>
                <TD class=EtoC vAlign=top width="63%">Number of particles in 
                  the system which are still alive. If this value is zero, it 
                  means all particles are dead and the system can be 
              removed.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">BoundingBox3</TD>
                <TD class=ColorCode vAlign=top width="19%">boundingBox</TD>
                <TD class=EtoC vAlign=top width="63%">The 3D axis-aligned 
                  bounding box (AABB), used for visibility determination. We can 
                  use this for frustum, portal, and anti-portal checks.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=BGRed colSpan=3 vAlign=top>
                  <DIV align=center><B><FONT color=#cccccc>表2 
                  粒子系統基類的屬性</FONT></B></DIV></TD></TR></TBODY></TABLE><BR>  下面將講述如何計算經常面對活動鏡頭的粒子的四個位置。首先,把粒子世界空間坐標變換到鏡頭空間(用世界空間的位置坐標乘以活動鏡頭矩陣)使用粒子的大小屬性來計算四個頂點。<BR><BR>
            <TABLE align=center border=0 cellPadding=2 cellSpacing=0 
class=BGRed>
              <TBODY>
              <TR align=middle>
                <TD><IMG height=180 src="AParSystem-3.gif" 
                  width=187></TD></TR>
              <TR align=middle>
                <TD><FONT color=#cccccc><B>圖3 
              為渲染粒子的建立形狀</B></FONT></TD></TR></TBODY></TABLE><BR>  我們使用這四個形成形狀的頂點來渲染粒子,雖然一個粒子只有一個位置:xyz。為了渲染一個粒子(例如一個火花),我們需要建立一個形狀(用4個頂點)。然后在四個頂點之間我們得到兩個三角形。想象一個非伸展的粒子總是面對你前面的鏡頭,就像圖3所描述的一樣。對我們來說,粒子總是面對活動鏡頭的,這意味著我們可以簡單的加減粒子的鏡頭空間坐標的x和y值。換句話說,保留z值不變就好像你在作2D一樣。你可以在清單1中看到一個計算的例子。<BR><BR>  <SPAN 
            class=ColorCatchword>// 清單1 — Calculating the shape of a particle 
            facing the camera.</SPAN><BR>  <SPAN class=ColorCode>void 
            ParticleSystem::SetupShape(int nr)<BR>  {<BR>    assert(nr &lt; 
            shapes.Length());</SPAN>  <SPAN class=ColorCatchword>// make sure we 
            don't try to shape anything we<BR>                     // don't 
            have<BR><BR>    // calculate cameraspace 
            position<BR></SPAN>    <SPAN class=ColorCode>Vector3 csPos = 
            gCamera-&gt;GetViewMatrix() * 
            particles[nr].position;<BR></SPAN><BR>    <SPAN 
            class=ColorCatchword>// set up shape vertex 
            positions<BR></SPAN>    <SPAN class=ColorCode>shapes[nr].vertex[0] = 
            csPos + Vector3(-particles[nr].size, particles[nr].size, 
            0);<BR>    shapes[nr].vertex[1] = csPos + Vector3( 
            particles[nr].size, particles[nr].size, 
            0);<BR>    shapes[nr].vertex[2] = csPos + Vector3( 
            particles[nr].size, -particles[nr].size, 
            0);<BR>    shapes[nr].vertex[3] = csPos + 
            Vector3(-particles[nr].size, -particles[nr].size, 
            0);<BR>  }</SPAN><BR><A name=3.0></A><BR><B>3、函數</B>(<SPAN 
            class=English>The 
            Functions</SPAN>)<BR>  現在我們知道在粒子系統的基類中需要什么屬性,我們能夠開始思考需要什么樣的函數。既然是基類大多數的函數被聲明為虛函數。每種粒子系統都用不同的方式來更新粒子屬性,所以我們需要一個虛擬的更新函數。這個更新函數將完成以下任務: 

            <UL>
              <LI>更新所有粒子的位置和其他屬性。 
              <LI>如果我們不能預先計算綁定盒,則需更新它 
              <LI>計算存活的粒子數量。如果沒有存活的粒子則返回FALSE,反之返回TRUE。返回值將被用于判定系統是否可被刪除。 
            </LI></UL>  現在我們的基類已有能力來更新粒子,我們也將要建立可用新的(也可能是舊的)位置來構建的形狀。這個函數<SPAN 
            class=ColorCode>,SetupShape</SPAN>,必須是個虛擬函數,因為某些粒子系統會要伸展粒子,而有些系統不會這么做。你可以在清單1中看到這樣一個函數。<BR>  要向給定的系統加入一個粒子或是重新生成它,建立一個做這件事的函數將是十分有益的。同樣,這應該是個虛擬函數,并應該如此定義:<BR><BR>  <SPAN 
            class=ColorCode>virtual void SetParticleDefault(Particle 
            &amp;p);</SPAN><BR><BR>  就像我在前面解釋過的,這個函數初始化給定粒子的屬性值。但如果你想要改變煙的速度或是影響你的煙系統的風向。這是我們接觸下一個主題:粒子系統的構造函數。許多粒子系統需要他們獨特的構造函數,強迫我們在基類中建立一個虛擬構造函數和析構函數。在基類的構造函數中你應該輸入以下信息: 

            <UL>
              <LI>你一開始想在系統中構建的粒子數量。 
              <LI>粒子系統的位置。 
              <LI>你想在系統中使用的混合模式。 
              <LI>你想在系統中使用的底紋或底紋文件名。 
              <LI>系統方式(即ID)。 </LI></UL>  在我的引擎中,粒子系統的基類中的構造函數是這樣的:<BR><BR>  <SPAN 
            class=ColorCode>virtual ParticleSystem( int nr,<BR>    rcVector3 
            centerPos,<BR>    BlendMode blend=Blend_AddAlpha,<BR>    rcString 
            file name=óEffects/Particles/ 
            green_particleó,<BR>    ParticleSystemType 
            type=PS_Manual<BR>  );</SPAN><BR><BR>  那么應該在哪兒做例如煙系統的風向的各種設置呢?你可以在構造函數中加入根據特定系統的設定值,也可以在每個類中建立一個名為InitInfo的結構體(<SPAN 
            class=English>structure</SPAN>),其中包含所有的必須的設定值。如果你使用后一種方法,確保在構造函數中加入一個新的參數,即指向新結構的指針。如果指針為空(NULL),使用默認的設定值。<BR>  正如你所想象的,第一種方法要在構造函數中加入很多參數,而這對于程序員來說過于繁瑣。這是我不使用第一種方法的主要原因。使用第二種方法則簡單得多,我們可以在每一個粒子系統類中建立一個函數以用默認值來初始化它的結構。這段代碼的例子和演示程序可在這里得到。<BR><A 
            name=4.0></A><BR><B>4、粒子管理器</B>(<SPAN class=English>The Particle 
            Manager</SPAN>)<BR>  現在我們已經發現了每個粒子系統背后的隱藏的技術,該是創建一個管理類來控制我們的各種粒子系統時候。一個管理類將掌管創建、釋放、更新及渲染所有的系統。這樣,管理類必須有一個屬性是指向粒子系統的指針。我強烈推薦你建立或是使用一個數組模板(<SPAN 
            class=English>Array 
            Template</SPAN>),因為這將會簡單些。<BR>  你制作的粒子系統的使用者或許會希望較容易地增加系統。他們也不想跟蹤所有的系統以保證所有粒子均已死亡從而可以從內存中釋放它們。這就是設計管理類的目。管理器將會在需要時自動更新和渲染系統,并刪除已死亡的系統。<BR>  當使用不定時系統(系統將在給定的時間后死亡)時,有一個檢查系統是否已被刪除的函數是很有用的(例如,是否它還存在于粒子管理器中)。想象你創建了一個系統并存儲了指向系統的指針。你通過這個指針每一幀訪問系統。如果系統恰巧在你使用指針之前死亡,會發生什么?崩潰。這就是為什么我們需要一個檢查系統是否存活還是已經被管理類刪除的函數。粒子管理類中需要的函數列表如表3所示。<BR><BR>
            <TABLE align=center bgColor=#000000 border=0 cellPadding=2 
            cellSpacing=1 width="95%">
              <TBODY>
              <TR class=BGRed>
                <TD width="18%"><B><FONT color=#cccccc>函數</FONT></B></TD>
                <TD colSpan=2><B></B><B><FONT 
color=#cccccc>描述</FONT></B></TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">Init</TD>
                <TD class=EtoC colSpan=2 vAlign=top>Initializes the particle 
                  manager.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">AddSystem</TD>
                <TD class=EtoC colSpan=2 vAlign=top>Adds a specified particle 
                  system to the manager.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">RemoveSystem</TD>
                <TD class=EtoC colSpan=2 vAlign=top>Removes a specified 
                  particle system.</TD></TR>
              <TR bgColor=#ffffff>
                <TD class=ColorCode vAlign=top width="18%">Update</TD>
                <TD class=EtoC colSpan=2 vAlign=top>Updates all active 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费版pro下载短视频| 九九久久精品视频| 欧美国产日韩一二三区| 久久亚洲精精品中文字幕早川悠里 | 三级久久三级久久久| 亚洲成人你懂的| 丝瓜av网站精品一区二区 | 成人一道本在线| 成人精品电影在线观看| 成人免费高清视频| 91黄色免费版| 欧美一级二级三级蜜桃| 精品捆绑美女sm三区| 中文字幕免费不卡| 亚洲午夜国产一区99re久久| 日韩高清在线观看| 国产伦精品一区二区三区免费| 国产**成人网毛片九色 | 色综合久久久久| 欧美日韩亚洲高清一区二区| 日韩一区二区麻豆国产| 国产欧美日韩亚州综合| 亚洲日本乱码在线观看| 欧美aⅴ一区二区三区视频| 国产一区二区在线影院| 91视频国产观看| 欧美一级xxx| 最好看的中文字幕久久| 久久精品999| 99精品热视频| 欧美精品一区二区三区高清aⅴ | 亚洲精品国产精品乱码不99| 免费观看一级特黄欧美大片| aaa亚洲精品| 欧美一三区三区四区免费在线看| 国产午夜精品理论片a级大结局| 亚洲欧美日本在线| 韩国理伦片一区二区三区在线播放| 不卡av在线免费观看| 6080午夜不卡| 亚洲黄色录像片| 国产乱国产乱300精品| 欧美日韩情趣电影| 国产精品的网站| 狠狠色综合日日| 欧美日韩专区在线| 亚洲免费在线播放| 丁香婷婷综合网| 精品欧美久久久| 丝袜亚洲精品中文字幕一区| 91麻豆精东视频| 久久精品在线免费观看| 美女精品自拍一二三四| 欧美精三区欧美精三区 | 91精品国产综合久久小美女| 国产精品久久久久精k8| 国产电影一区在线| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲成人av一区二区三区| 一本大道综合伊人精品热热| 国产精品电影一区二区| 粉嫩av一区二区三区在线播放 | 精品久久久久久久久久久久久久久 | 亚洲电影你懂得| 色综合久久久久综合| 国产精品动漫网站| 成人av网站免费| 国产欧美视频在线观看| 国产盗摄一区二区三区| 欧美国产日韩亚洲一区| 成人网在线播放| 国产精品久久久久久久久免费相片 | 欧美日本在线播放| 亚洲成人免费电影| 欧美久久久一区| 首页国产欧美日韩丝袜| 欧美另类高清zo欧美| 视频一区在线播放| 91精品国产福利在线观看| 免费欧美高清视频| 久久综合九色欧美综合狠狠| 国产毛片精品一区| 亚洲欧美在线另类| 欧洲精品在线观看| 午夜亚洲国产au精品一区二区| 欧美日韩你懂得| 久久成人精品无人区| 久久久午夜精品理论片中文字幕| 国产东北露脸精品视频| 亚洲私人影院在线观看| 欧美日韩国产综合久久| 日本在线不卡一区| 精品成人在线观看| 95精品视频在线| 午夜伦欧美伦电影理论片| 日韩三级.com| 97成人超碰视| 免费的成人av| 中文字幕国产一区二区| 欧美在线免费观看亚洲| 黄页网站大全一区二区| 亚洲色图都市小说| 日韩精品最新网址| 99久久国产综合色|国产精品| 午夜精品福利一区二区三区av | 91精品国产91热久久久做人人| 日本成人超碰在线观看| 中文字幕成人在线观看| 欧美色视频在线观看| 国产91精品在线观看| 亚洲成va人在线观看| 亚洲国产精品传媒在线观看| 欧美狂野另类xxxxoooo| 成人毛片在线观看| 久久99精品久久久久久国产越南 | 成年人网站91| 麻豆精品一区二区综合av| 亚洲人精品一区| 久久美女艺术照精彩视频福利播放| 91行情网站电视在线观看高清版| 男女男精品视频网| 一区二区三区日韩欧美精品| 久久人人97超碰com| 欧美精品亚洲一区二区在线播放| 国产成人高清视频| 久久精品国产一区二区| 亚洲愉拍自拍另类高清精品| 欧美国产一区在线| 日韩欧美中文一区| 欧美日韩亚洲国产综合| 91丨九色丨国产丨porny| 成人性生交大片免费| 国产一区二区女| 免费在线观看一区| 三级欧美韩日大片在线看| 一区二区三区在线观看国产 | 日本韩国精品在线| 成人av午夜影院| 波多野结衣中文字幕一区 | 国产精品灌醉下药二区| 国产欧美综合在线观看第十页| 精品欧美久久久| 日韩视频一区二区在线观看| 制服丝袜亚洲色图| 欧美伦理电影网| 337p亚洲精品色噜噜| 5月丁香婷婷综合| 日韩亚洲欧美在线观看| 4438x亚洲最大成人网| 日韩一区二区在线观看视频播放| 欧美日韩性生活| 欧美一区二区三区视频| 欧美不卡一区二区| 精品播放一区二区| 久久午夜色播影院免费高清 | 99久免费精品视频在线观看| 丁香啪啪综合成人亚洲小说| 豆国产96在线|亚洲| 99久久综合精品| 91免费版pro下载短视频| 欧美又粗又大又爽| 精品视频在线免费观看| 欧美日韩一级黄| 日韩欧美色综合网站| 精品福利二区三区| 中文久久乱码一区二区| 中文字幕一区二区三中文字幕| 亚洲欧美日韩国产另类专区| 天堂久久一区二区三区| 国内精品嫩模私拍在线| av在线不卡网| 欧美三级韩国三级日本一级| 精品理论电影在线观看| 中文字幕一区二区三区四区不卡| 亚洲精品视频免费看| 日本欧美一区二区三区| 国产精品一二二区| 欧美在线一二三| 日韩你懂的在线播放| 国产精品久久久久三级| 天堂久久久久va久久久久| 国产精品一色哟哟哟| 欧美无砖专区一中文字| 精品播放一区二区| 亚洲一区二区欧美| 国产成人午夜99999| 欧美色视频在线| www.亚洲激情.com| 亚洲香肠在线观看| 色香蕉成人二区免费| 成人黄色网址在线观看| 欧美日韩dvd在线观看| 精品国产凹凸成av人网站| 亚洲美女视频一区| 国内精品视频一区二区三区八戒| 91福利视频网站| 欧美激情一区在线观看| 日韩电影一区二区三区| 色综合久久综合网| 久久九九久久九九|