專利名稱:紋理結構化方法和裝置的制作方法
技術領域:
本發(fā)明涉及屏幕上顯示的圖形圖像的表面紋理結構化(surface texturing),尤其涉及將表面紋理結構應用于圖形圖像的簡潔方法。
用于在屏幕上二維顯示的多數(shù)三維計算機模型的關鍵特點在于合理的紋理結構圖的選擇。紋理結構圖用于提供各種表面性質的細節(jié),諸如顏色、暗度、粗糙度、陰影、透明度等等。通常,紋理結構圖通過照相或掃描的圖像產生。這會造成文件很大。
紋理結構圖的新的應用,諸如用于傳輸?shù)揭苿与娫掞@示屏上顯示圖像,要求很小的帶寬。根本沒有足夠的時間來發(fā)送大文件。本發(fā)明尋求提供一種適合用于移動電話的方法和裝置。
磁盤上的圖像存儲的問題在于圖像占據(jù)了大量的空間。紋理結構信息構成了所需存儲量的大部分。本發(fā)明尋求提供一種用于在磁盤上的圖像存儲的改進的方法和裝置,它允許在同樣的磁盤上存儲更多圖像。
在帶寬或容量有限的情況下,本發(fā)明尋求提供一種裝置,藉此可以在固定的時間內或以固定的帶寬傳輸更多的表面紋理結構,或在固定的空間內存儲更多的表面紋理結構。
萬維網(wǎng)的用戶經常變得不耐煩,是有充分理由的。用戶在放棄一個網(wǎng)頁去到別的地方之前只會等待一定的時間。通過允許紋理結構數(shù)據(jù)的快速傳輸,本發(fā)明尋求提供一種裝置,由此可以更快地得到web網(wǎng)頁。
通常,本發(fā)明應用于任一根據(jù)圖像的通常外觀而非圖像本身的細節(jié)且依賴于有限的存儲量或帶寬的應用中。本發(fā)明對于web網(wǎng)頁上的背景圖像和斑點圖形效果的顯示、用于繪圖程序的寬范圍的紙張紋理的產生、在存儲量有限的裝置,諸如,掌上電腦,上的滿意的圖像的顯示以及用于打印的大量高分辨率紋理結構的有效存儲和傳輸特別的有用。
根據(jù)本發(fā)明的第一方面,本發(fā)明包括產生圖像的表面紋理結構的方法,它包括以下步驟使用像素的紋理結構;在域中對每個像素分配隨機值;移動像素;將紋理結構分成可以卷繞的單元格;以及分配顏色到每個像素。
第一方面還提供將隨機值分配到每個像素的步驟包括控制隨機值的粗糙度。
第一方面還提供移動像素的步驟包括扭曲(warping)像素。
第一方面還提供移動像素的步驟包括使像素畸變(distort)。
第一方面還提供將紋理結構分成可以卷繞的單元格的步驟包括選擇單元格形狀的步驟。
第一方面還提供將紋理結構分成可以卷繞的單元格的步驟包括選擇單元格尺寸的步驟。
本發(fā)明的第一方面還提供分配顏色到每個像素的步驟包括考慮像素的位置。
本發(fā)明的第一方面還提供分配顏色到每個像素的步驟包括考慮像素的移動。
本發(fā)明的第一方面還提供分配顏色從每個像素的步驟包括在所選的顏色范圍內進行分配。
本發(fā)明的第一方面還提供使用計算機程序來產生表面紋理結構。
本發(fā)明的第一方面還提供使用紋理結構數(shù)據(jù)串來產生表面紋理結構。
根據(jù)第二方面,本發(fā)明在于根據(jù)第一方面的方法運作的裝置。
根據(jù)第三方面,本發(fā)明在于根據(jù)第一方面運作的計算機程序。
根據(jù)第四方面,本發(fā)明在于承載計算機程序拷貝的存儲裝置。
根據(jù)第五方面,本發(fā)明在于紋理結構串消息。
根據(jù)第六方面,本發(fā)明在于計算機裝置,它包括根據(jù)第一方面使其運作的程序。
根據(jù)第七方面,本發(fā)明在于計算機,它能用來產生紋理結構數(shù)據(jù)串。
將通過結合附圖閱讀實例的方法和以下描述來進一步解釋本發(fā)明,其中
圖1是示出使用本發(fā)明的較佳實施例的通常情況的示意圖。
圖2A-圖2E示出在本發(fā)明中使用的具有不同類型的單元格的不同紋理結構的實例。
圖3A和圖3B示出圖1的紋理結構的卷繞特性,此實例中示出了方格狀的單元格。
圖4A和圖4B說明了使用匹配的單元格的圖1的紋理結構的卷繞。
圖5示出示出被和紋理結構的單元格有關的表面紋理結構覆蓋的對象。
圖6示出了紋理結構中的單個像素。
圖7示出隨機化過程之前的單個像素。
圖8A至圖8D是說明隨機化過程的投影圖而圖8E是隨機化過程的流程圖。
圖9A至圖9F示出通過本發(fā)明可以得到的各種程度的粗糙度。
圖10A示出用于卷繞過程的線性插值方法。
圖10B示出用于卷繞過程的平滑的插值方法。
圖11A至圖11E示出可以通過卷繞得到的各種效果的實例。
圖12是說明實現(xiàn)卷繞的方法的流程圖。
圖13是說明如何實現(xiàn)畸變的流程圖。
圖14A至圖14F說明各種程度的卷繞的效果。
圖15示出像素如何被分配到單元格。
圖16示出為了用于顏色選擇如何將權重函數(shù)應用于像素性質。
圖17說明,通常,圖16的權重函數(shù)如何被實際應用到方程上的。
圖18是說明和圖17相關使用的一些像素性質的意義的示意圖。
圖19是說明圖17中的術語“射線”的意義的示意圖。
圖20是說明圖17所示的術語“向邊界”、“角度”、“單元格等離子體”、“像素等離子體”和“像素等離子體2”的意義的示意圖。
圖21示出說明如何根據(jù)圖16的流程圖得到顏色值,并被應用于選擇在最終紋理結構中的像素的顏色的示意圖。
圖22A至22L說明使用本發(fā)明可以實現(xiàn)的不同紋理結構效果。
圖23是說明圖1的圖像產生源如何向接收裝置提供紋理結構程序的拷貝,假如接收裝置沒有運行紋理結構程序。
圖24示出在其中紋理結構信息被輸送到產生和顯示紋理結構的裝置的方法。
圖25是示出顯示紋理結構化圖像的裝置如何實現(xiàn)這種效果的流程圖。
圖26是示出傳送和/存儲本發(fā)明的紋理結構信息和方法的各種方法的示意圖。
圖27是紋理結構串的實例,一二進制數(shù)字序列,它可以被發(fā)送給接收裝置以便可以在其中產生并顯示紋理結構。
參照圖1,它示出了可以應用本發(fā)明的一種環(huán)境。圖像產生源10,此處示為計算機,發(fā)送圖像數(shù)據(jù)到電話網(wǎng)絡12,電話網(wǎng)絡再將圖像數(shù)據(jù)發(fā)送到移動電話網(wǎng)絡14并由該處到移動電話16以顯示來自圖像產生源10的數(shù)據(jù)表示的圖像18。本發(fā)明的目的是提供圖像18,可以用很少量的圖像數(shù)據(jù)表示寬范圍的表面紋理結構。
圖2A至2E示出表面紋理結構產生過程的起點。提供紋理結構20。在此實例中,紋理結構20是正方形。通常,是同樣長和寬的矩形作為最終的紋理結構。
紋理結構20被分成單元格22。單元格22在紋理結構20中形成有規(guī)則的圖案并具有“卷繞”的屬性。這就是說,當上邊界24,形象的說,卷繞過來與下邊界26接合,單元格22的圖案是連續(xù)的。同樣地,當右邊界28卷繞到左邊界30,單元格22的圖案也是連續(xù)的。
不同類型的單元格都是可以的。圖2A示出稱為“編織”的單元格式樣。圖2B示出稱為“磚塊”的式樣。圖2C示出稱為“矩形”的式樣。圖2D示出紋理結構20中的“蜂窩”單元格。圖2E示出單元格22的式樣“圈”。
注意3A,它更詳細地示出了卷繞特性。圖3A示出紋理結構20的蜂窩單元格22以及,緊接著的,在圖3B中的5個紋理結構20的方格示出蜂窩單元格22如何在紋理結構的每個邊界24、26、28、30形成連續(xù)的圖案。在這種情況下,蜂窩單元格22形成完整的方格。
圖4A和4B示出和圖3A和3B同樣的過程,這次使用另外的如圖2E所示的“圈”單元格。在這種情況下,圈在邊界24、26、28、30簡單地匹配而不形成在通常感覺中的棋盤格。圖4A和4B示出“卷繞”過程的本質,卷繞屬性取決于在邊界24、26、28、30上具有匹配。
待紋理結構化的表面被紋理結構20覆蓋。選擇各種類型的紋理結構20中的一個。簡單地,單元格22的類型既可以通過數(shù)學算法產生,也可以只是存儲并使用很少的內存檢索。選擇單元格22類型中的一個。
圖5說明單元格覆蓋對象的一種可能的方法。對象32,在該實例中由七邊形表示,被單個紋理結構20的單元格22的一個陣列至少覆蓋其邊界。在完成的圖像中,單元格將僅在對象32的邊緣可見(露出對象32的邊界)。但是,必須具有一定程度的重疊以便可以實現(xiàn)該條件。實際上,可以假定紋理結構貫穿整個平面重復無限多次??晒┻x擇地,紋理結構20可以用本技術領域已知的方法“卷繞”過對象或“投影”到對象上。
對象32可以是二維表面,或三維表面的二維投影,它是通過,例如,但不限于,于1999年11月5日由本申請人提出的英國專利申請9926131.5“ImageEnhancement”產生的圖像的一部分。
由任何其它方法產生的任何其它對象32可以成為本發(fā)明的主體。對對象32的全部要求就是它具有能接受紋理結構的表面。
圖6示出紋理結構20。該紋理結構20包括多個間隔的像素34(這里示出比現(xiàn)實中間隔寬且數(shù)量少),分別在紋理結構20中都具有其自身的坐標。作為實例,圖6所示的是單個第m像素,34m,具有其X和Y坐標X(m)、Y(m)。紋理結構化過程,即本發(fā)明的主題,就是從像素坐標X(m)Y(m)有效地映射到新的位置和顏色值。
在圖7中的是單個像素34的部分的投影圖,另外如圖6中所示的。示出一組軸36位于作為像素34的平面的XY平面,并位于平面表面Z=0處。還示出了下邊界平面38,它位于值Z=-0.5和上邊界平面40,它位于值Z=+0.5。紋理結構操作的第一步是對每個像素34指定一個數(shù)字。所指定的數(shù)字在圖8中以形象的方式加以說明,如同在軸36上的Z值。每個像素34沿Z軸被其指定的值替代。
圖8A至8D示出Z值被指定到像素34中的連續(xù)的階段,而圖8E示出指定過程的流程圖。
注意到圖8A至8D。使用偽隨機方法將值分配到每個像素34,該偽隨機方法產生一組通稱為等離子體域(plasma field)的值。選擇一個種子數(shù)字(seed number)粗糙度值。該種子數(shù)字應用于偽隨機數(shù)字產生過程,它在需要的時候提供偽隨機值。最初,在-0.5和+0.5之間的偽隨機值被分配給等離子體域中的每個邊角像素34’,并分配1/2的初始步長值。
選擇3個在-0.5和+0.5之間的偽隨機值P、Q和R以使它們的和為0。
選擇沿上邊界的中點像素34”并分配給它相鄰的邊角像素34’的兩個值的平均值,加上預先選擇的偽隨機值P乘以當前的步長值。
選擇沿左邊界的中點像素34并分配給它相鄰的邊角像素的兩個值的平均值,加上預先選擇的偽隨機值Q乘以當前的步長值。
分配給中心像素34””4個邊角像素的平均值,加上預先選擇的偽隨機值R乘以當前的步長值。
隨后,域分成4個更小的正方形,尺寸每次減半,步長值也減半,并且隨后用每個更小的正方形以選擇新的偽隨機值P’、Q’和R’開始,重復過程直到域中的所有像素34被分配到值。
分配的粗糙度用于修改初始步長,其中給予邊角像素34’其初始偽隨機值。如果粗糙度非0,則隨后這步長以一定數(shù)目的連續(xù)的階段被應用于更小的正方形,且該數(shù)字由粗糙度值確定。因此,用戶能選擇對應紋理結構的第二特性。
注意到圖8E,示出了Z值分配過程的流程圖。從入口11開始設置操作13將種子數(shù)放入偽隨機數(shù)產生器來初始化偽隨機數(shù)產生器并設定粗糙度值。此后,邊角檢測15進行檢查以便發(fā)現(xiàn)邊角像素34’是否彼此連接。這標志程序的終止。如果是,則分配操作退出到返回17,如果不是,則粗糙度檢測19進行檢查以便發(fā)現(xiàn)是否應用了粗糙度。如果是,則粗糙度操作21將隨機值分配給邊角像素34’。粗糙度檢測19和粗糙度操作21將控制交給邊界中點操作23,它將值分配給邊界的中點像素34”、34,此后,中心像素操作25將值分配給中心像素34””。隨后,分割操作27將域分成4個同樣的區(qū)域。重復操作29對每個更小的區(qū)域重復程序直到邊角測試15探測到整個域都被覆蓋了,每個像素34已經被分配了Z值。
圖9A至圖9F說明最終圖像上的粗糙度的效果。在圖9A中,粗糙度值被設為0而圖像基本平滑。在圖9B中粗糙度值被設為1而圖像在細節(jié)上變得更細密一點。圖9C、9D、9E和9F分別具有粗糙度值2、3、4、5和6。最終圖像的效果從圖上很清楚地得到。圖9A示出可能,例如,緞紋織物上呈現(xiàn)的表面,但圖9F則類似砂紙。使用同樣的偽隨機數(shù)產生器種子數(shù),僅僅通過在紋理結構20上改變同樣設置的像素34的粗糙度值,就可以實現(xiàn)所有這些不同的效果。
在紋理結構形成操作中的下一個動作是“扭曲”。扭曲是紋理結構的大范圍的變型。它可以用于在最終圖像上產生受控的曲線、之字線和波紋線。對于紋理結構中的每個軸X、Y,扭曲函數(shù)是用戶定義的。對于每個X坐標,Y扭曲返回應用于Y坐標的偏移量。同樣的,對于每個Y坐標,X扭曲函數(shù)返回應用于X坐標的偏移量。
扭曲函數(shù)由表示曲線上的點的兩列值a,b定義。
圖10A示出用于扭曲的線性插值。由紋理結構設計者選擇的扭曲曲線的點42作為控制圖標44上的分離的位置示出。在此例中,沒有選擇平滑選項。結果,點42之間的插值是直線的。顯示器46示出包含直線部分的扭曲函數(shù)的結果。
圖10B示出與圖10A所示的同樣的一組點42,但此處選擇了平滑選項48。則現(xiàn)在在顯示器46上的曲線平滑地插入于點42之間,而沒有銳角或直線。
為了較佳化,圖10B中使用的平滑函數(shù)是哈密特樣條(Hermite spline)曲線。這僅僅是許多可以用于本發(fā)明的平滑函數(shù)中的一個。例如,貝塞爾函數(shù),或貝塞爾(Bezier)樣條曲線,可以同樣地使用。那些本技術領域的熟練的技術人員會意識到大量可以實現(xiàn)此目的的其它函數(shù)。
圖11A至11E示出各種扭曲函數(shù)的效果的實例。圖11A示出初始的沒有扭曲的單元格,為了清楚的說明效果而排布成棋盤狀。
圖11B示出在X軸上的線性扭曲。圖11C示出在X軸上的平滑扭曲。圖11D示出在X軸和Y軸上的同時發(fā)生的平滑扭曲。
因此,紋理結構設計者能對紋理結構添加更多的效果。為了扭曲紋理結構,設計者選擇點42和線性或平滑選項來實現(xiàn)所需的效果。
在紋理結構設計中的下一階段,如果需要,使紋理結構設計者能施加畸變??梢詫⒖勺兊膫坞S機畸變量應用到紋理結構。這可以用于將規(guī)則的單元格圖案,諸如,簡單的方格網(wǎng),改變?yōu)榭雌饋砀印坝薪M織”的東西,可能類似于鱷魚皮上的鱗片。
圖12是示出扭曲紋理結構20的方法的流程圖。入口50是到第一操作52的,第一操作中扭曲曲線點42(從圖9和圖10中)由紋理結構設計者輸入并選擇較佳的插值方法。此后,第二操作54進行插值來產生曲線(如圖9和10的顯示器46上所示的)。
隨后,第三操作56選擇紋理結構20上的第一像素34。接下來,第四操作58找到y(tǒng)扭曲因子(factor)。為此,去到在第二操作54中產生的在進行中的像素34的X值處的曲線。在稍后的操作中使用的“warp(y)”值,是像素34的X值上的曲線的值。
隨后,第五操作60發(fā)現(xiàn)x扭曲因子。為此,參考在第二操作54中產生的插值曲線。選擇處理中的像素34的Y值,并且選取曲線上的X坐標的值。這是x扭曲因子“warp(x)”。
隨后,第六操作通過將像素34的X坐標和像素34的X坐標與y扭曲因子warp(y)的乘積相加來計算扭曲的像素34的x位置w(x)。隨后,第七操作64通過將處理中的像素34的Y坐標和處理中的像素的Y坐標與x扭曲因子warp(x)的乘積相加來計算像素34的扭曲的y位置w(y)。此后,第一測試66檢查以便發(fā)現(xiàn)紋理結構20中的最后的像素34是否處理過。如果是,流程進行到退出(exit)68。如果不是,則控制進行到第八操作70,它選擇紋理結構20中的下一個像素34并將控制傳給第四操作58。這樣,依次處理單元格22中的每一個像素34直到所有的像素34都被處理過。
圖13是處理的流程圖,由此將畸變加到紋理結構20上。從入口72開始,第九操作74選擇紋理結構20中的第一像素34?;兲幚磉x擇的像素34的坐標不是形成圖12的處理的起始點的像素34的初始坐標X、Y,而是來自圖12的扭曲處理的扭曲的X和Y坐標,即W(x)、W(y)。如果沒有扭曲,像素34的坐標將保持為X、Y。隨后,如果沒有發(fā)生扭曲,這將是W(x)、W(y)的值。
此后,第十操作76進行到初始等離子體域并讀出在像素34處的Z值(見圖8),由扭曲的坐標W(x)、W(y),在Y方向上移位分配給處理中的像素34的Z值的四分之一(見圖8)。這產生X畸變因子f(x)。
隨后,第十一操作78讀出像素34的Z值,由處理中的像素34在Y方向上移位分配給處理中像素的Z值的二分之一(見圖8)。
隨后,第十二操作80選擇寬度畸變因子D(w)。同樣地,第十三操作82選擇高度畸變因子D(h)?;円蜃覦(w)、D(h)都是由紋理結構設計者提供作為到最終紋理結構的另一個輸入變量。
此后,第十四操作84通過將扭曲的X坐標W(x)和在第十操作76中找到的X畸變因子f(x)與在第十二操作80中選擇的寬度畸變因子D(w)的乘積相加來計算畸變的X值d(x)。隨后,第十五操作通過將處理中的像素34的扭曲的Y坐標W(y)和在第十一操作78中找到的Y移位因子f(y)與在第十三操作82中選擇的高度畸變因子D(h)的乘積相加來計算畸變的Y值d(y)。隨后,第二測試88檢查以便發(fā)現(xiàn)紋理結構20中的最后的像素是否被處理過。如果紋理結構20中的所有的像素34都被處理過了,則畸變處理進行到退出90。如果最后的像素34沒有被處理過,則第十六操作92選擇下一個要處理的像素34并將控制傳給第十操作76。這樣,紋理結構20中的所有像素都一個接一個被處理直到完成整個紋理結構20。
為了視覺效果的清晰起見,圖14A至14F示出在簡單正方格22圖案上的不同程度的畸變的實例。圖14A示出沒有扭曲或畸變的紋理結構20。圖14B示出具有輕微畸變的圖14A的格子。圖14C示出具有比圖14B更多一些畸變的圖14A的格子。圖14D示出具有相當程度畸變的圖14A的格子。圖14E示出具有大幅畸變的圖14A的格子。圖14F示出具有最大畸變的圖14A的格子?;冞_到圖14F的程度的時候,圖14A的紋理結構20中的正方格22的規(guī)則的格子圖案已經達到對肉眼明顯的混亂且非規(guī)則的樣子。如圖14F所示的這種圖案接近大理石材料的表面。
圖15是紋理結構制作中下一個步驟的流程圖。進行了圖13中所述的畸變步驟,現(xiàn)在有必要找出所有的像素34已經移到哪里,以便可以進行進一步的處理。從入口94開始,第十七操作96根據(jù)來自圖13所示的操作的畸變的輸出D(x)、D(y)選擇第一像素34。隨后第十八操作98計算仔細觀察下的像素34實際占據(jù)了那個單元格22,既然它已經到處移動。單元格22的形狀和尺寸由紋理結構設計者選擇。對畸變的坐標d(x)、d(y)進行分析,在該位置上通過任何可能已經施加的扭曲和畸變來移動像素34。如果沒有施加扭曲或畸變,當然,像素34保持在其初始位置X,Y。紋理結構的設計者可以選擇各種類型的單元格,如圖2所示。單元格22的寬度和高度由設計者指定,并通常有所限制以便提供交疊(tileability)以使單元格22的全部數(shù)量在橫向和縱向填滿圖像。使用所選類型和尺寸單元格22的邊界,像素34被分配給特定的單元格22。在單元格22內的像素34的位置還被用于確定X偏移量134和Y偏移量136值,如圖18所示。
第三測試100檢查以便發(fā)現(xiàn)最后的像素34是否被處理過。如果是,則步驟進行到退出102。如果不是,則第十九操作104選擇下一個像素34并將控制返回給第十八操作98。這樣,所有的像素34被處理并被分配給單元格22。
參照圖16,示出了給紋理結構20著色的第一階段。從入口106開始,第二十操作108選擇第一加權函數(shù)“aweigh”和第二加權函數(shù)“bweigh”。這是用于和“像素矢量”的屬性相乘的幾組系數(shù)。如以下和圖17相關的描述,這些函數(shù)將被用于幫助計算每個像素34的顏色值。
隨后,第二十一操作110選擇紋理結構中的第一像素34。隨后,第二十二操作112根據(jù)以下公式計算第一顏色值AA=0.5+sum(aweigh{i}*value{i})/sum(abs(aweigh {i}))
“Abs”是aweigh{i}的絕對值。Value{i}在圖17中進行了解釋。sum是對處理中的像素的像素矢量求和。此后,第二十三操作114根據(jù)在第二十三操作114的框符中所示的公式計算第二顏色值B。
B=0.5+sum(bweigh{i}*value{i}/sum(abs(bweigh{i}))第四測試116檢查以便發(fā)現(xiàn)最后的像素34是否已經被處理過。如果不是,則第二十四操作118選擇紋理結構20中的下一個像素34并將控制返回給第二十二操作112以使所有像素34可以依次被處理。如果第四檢測116發(fā)現(xiàn)最后的像素34已經被處理過,則隨后處理進行到退出122。這樣,紋理結構20中的每個像素34被分配了A值和B值。
現(xiàn)在注意圖17,它以列表的形式示出圖16的第二十二操作112和第二十四操作114中的公式中的元素。雖然只解釋了在第二十二操作112中的公式,但可以理解,除使用了不同的權重列表bweigh,第二十三操作114中的公式以同樣的方式進行。
第一列124示出組成用于表征紋理結構20中的每個像素34的矢量{i}的元素。第二列126示出aweigh加權函數(shù),其中每個元素a1-a16對應于第一列124中的16個分離的元素中的一個。第三列128示出將第一列124乘以第二列124的結果。每個元素x、y等乘以在第二列中的其各自的系數(shù)a1、a2等來產生在第三列128中相對應的結果。最終,對于每個像素34,產生出現(xiàn)于第二十二操作112和第二十三操作114中的公式中的項。Value{i}是第一列124中每個元素的值。Aweigh{i}是第三列128中的每個元素的值。當產生紋理結構時,第二列126中的特定的系數(shù)a1-a16可以由用戶選擇或可以是固定值。當然,當重新構建圖像時,它們必須是用于其產生的同樣的值。aweigh加權函數(shù)比之出現(xiàn)于bweigh加權函數(shù)中相應的位置,具有不同的系數(shù)a1-a16。例如,sum(aweigh{i}*value{i}=[(x*a1)*(x)+(y*a2)*(y)+......+(像素隨機*a16)*(像素隨機)]注意到圖18,它解釋了圖17的第一列124中示出的一些元素。
在紋理結構20的角中的一個上示出原點130。在單元格22’中的一個上的像素起始點132具有從單元格22’的邊測量的X偏移量和Y偏移量,如第一和第二箭頭134、136指出的。因此,X偏移量和Y偏移量是其特別的單元格22’內的像素起始點132的坐標。
扭曲的位置138具有從紋理結構20的原點130測量的坐標w(x)、w(y)。在應用扭曲函數(shù)后,如圖10所示,被扭曲位置138是起始點132終止之處。同樣地,在從扭曲位置138畸變后,像素34到達扭曲和畸變的位置140,它具有也是從紋理結構20的原點130測量的坐標d(x)和d(y)。
注意到圖19,它解釋了圖17的第一列124中的術語射線。從單元格22中心142畫一直線,通過像素34的位置來和包圍單元格22的橢圓144相交。該橢圓具有和它所包圍的單元格同樣的寬高比。對于正方形的單元格,該橢圓具有同樣的高和寬,因此是個圓。線用作比例尺,它在單元格中心142給出值0而在和橢圓的交點146上分配有值1。隨后,值“射線”是由像素34的坐標占據(jù)的線上的比例點。在所示的實例中,可以看到“射線”具有約為0.25的值?!吧渚€的值”總是小于1的。
圖20說明同樣在圖17的第一列124中示出的“向邊界”項。代替從單元格22的中心142通過像素34延伸到橢圓144的線,該線終止于單元格邊界交點148。再一次,到單元格22的邊界的線被用作比例尺,并且單元格的中心142被分配了值0而單元格邊界交點148被分配了值1。沿線的像素34的比例位置給出值“向邊界”。在所示的實例中,“向邊界”的值在0.5左右?!跋蜻吔纭钡闹悼偸切∮?。
還在圖20中示出的是“角度”項,它是用于產生“向邊界”和“射線”以及X軸的線之間的簡單的角度。同樣的,“單元格等離子體”項是在單元格142的中心的等離子體域的Z值(見圖8)。“像素等離子體”是在等離子體域上點d(x)、d(y)處由圖20中數(shù)值150表示的像素34的值(該Z值,如圖8所示)。同樣的,“像素等離子體2”是等離子域在點d(x)、((z/2)-d(y))的值,其中z是在d(x)、d(y)產生的z值。
用于圖17的第一列124中的“單元格隨機”項是從單元格坐標產生的偽隨機值。單元格22的角給出單元格22的紋理結構20內的坐標,x偏移量和y偏移量就是從該角測量的。單元格坐標用作偽隨機數(shù)產生器的種子。偽隨機產生的數(shù)的結果就是“單元格隨機”。
“像素隨機”項是從像素34的坐標(x,y)產生的偽隨機值并且,此外,是其中像素34的坐標(x,y)是種子的偽隨機數(shù)。
依比例決定圖17的第一列124中的每個值以便它位于0和1之間。因此,用于第二十二操作112和第二十三操作114的公式總是產出0和1之間的值。A值和B值通過染色單個像素來表示顏色坐標。
通過使用扭曲函數(shù)可以進一步處理A和B值,類似于圖10中所示的。
注意到圖21,其中A顏色值和B顏色值用于確定每個像素34的顏色。紋理結構設計者選擇4種顏色C1、C2、C3和C4來表示單位正方形52的角。在該例中,顏色C1至C4由識別其顏色的24個二進制數(shù)值指定。C1至C4中哪個顏色到選擇正方形152的哪個角全部取決于紋理結構設計者。紋理結構設計者可以指定任何顏色來占據(jù)角中的任何一個。
像素顏色選擇正方形152可以想象為可以用從角顏色C1至C4得到的全部不同混合的色彩和飽和的域被填充。選擇正方形的一側定刻度為0到1并且這是用于A顏色選擇值的選擇的軸。同樣的,正方形的相鄰一側也定刻度為0到1并且這是用于B顏色選擇值的選擇的軸。無論用于特定像素34的A和B是什么值,從在坐標A、B處選擇正方形152選擇相應的顏色,該相應的顏色被施加到完成紋理結構中的像素34。
使用中,紋理結構設計者通過調整上述的所有變量來產生紋理結構,直到發(fā)現(xiàn)滿意的紋理結構圖像。隨后,以伸展橡膠板適合的方式伸展來適合物32(圖7)。例如,在球面上,紋理結構20可以卷繞來包裹表面。同樣的,紋理結構20可以以幻燈機的方式被投影到被紋理結構的表面上。它可以被放置或露出。許多其它將紋理結構映象到表面的方法對于本技術領域的熟練的技術人員來說是已知的。
圖22A至22L示出可以實現(xiàn)的不同的紋理結構。由于附圖是黑白的,因此不可能表現(xiàn)顏色上的豐富變化。這將必須想象。
圖22A和砌磚具有接近的類同之處。圖22B是織物。圖22C是粉紅色的花崗巖。圖22D是藍色的大理石。圖22E是鍍鋅的鋼鐵。圖22F是蛇皮。圖22G是豹皮。圖22H是破曉的天空的表現(xiàn)。圖22I是柳條編制品。圖22J是松木的細粒。圖22K是軟木疊片。圖22L是油布疊片??梢钥吹?,使用變化的變量和所用技術可以實現(xiàn)不同的紋理結構。
圖23是圖1所示的圖像產生源10的活動的流程圖。圖像產生源10可以是計算機、URL、ISP或任何可以發(fā)送圖像其它裝置。
從入口154開始,第二十六操作156使圖像產生源詢問移動電話16或任何將接收圖像的其它裝置來確定該裝置上是否存儲有紋理結構程序。如果第五測試158,在接收來自將接收圖像的裝置的響應時,探測到該程序存在,則操作進行到退出160。如果第五測試158探測到紋理結構程序不存在于將接收圖像的裝置中,則第二十七操作162使圖像產生源10發(fā)送紋理結構程序到裝置16以使裝置16能解釋紋理結構。
一旦紋理結構程序在裝置中,則如圖23所示,操作進行到退出60。
圖24示出當發(fā)送圖像到裝置18時,圖像產生源10的活動。從入口164開始,第二十八操作166首先發(fā)送圖像到移動電話、計算機或其它顯示圖像的裝置。此后,第二十九操作168使圖像產生源10發(fā)送紋理結構串到移動電話18或計算機、或其它產生圖像的裝置。如將在以下解釋的,紋理結構串是確定紋理結構的所有可選變量以已知的順序的簡單的鏈狀結構。
一旦紋理結構串被發(fā)送到移動電話或計算機,該操作進行到退出170。
注意到圖25,它示出了再產生圖像的移動電話18、計算機或其它裝置的活動。
從入口172開始,第三十操作174或者從存儲器檢索待紋理結構化的3-D物,或從諸如圖像產生源10的外部源接收3-D物。隨后,第三十一操作176或者從存儲器檢索,或者從諸如圖像產生源10的外部源接收定義施加到三維物的紋理結構的紋理結構串。隨后,已經接收或檢索包含鏈狀的定義所需的紋理結構的變量的紋理結構串的第三十二操作178產生用于施加到物的紋理結構。隨后,第三十三操作180通過投影、卷繞或任何本技術領域已知的其它技術將表面紋理結構施加到物。此后,第三十三操作180退出182。
注意到圖26,示出可以使用紋理結構的各種方法途徑。圖像產生源10可以在諸如硬盤的磁盤數(shù)據(jù)存儲器184上存儲或檢索紋理結構程序和紋理結構串,以用于提供物上的表面紋理結構。該程序和紋理結構串可以同樣地在可移動媒介186上被存儲和檢索,可移動媒介諸如軟盤、預記錄的或可擦寫的光盤188、固定或可移動的磁帶190或可以是RAM、ROM、電子可變ROM或任何可以存儲易失的或不易失的記錄的其它電子或物理裝置。
同樣的,圖像產生原10通過如前所述的遠程通信網(wǎng)絡或因特網(wǎng)服務或電話系統(tǒng)或從遠程裝置發(fā)送消息194,諸如移動電話18或遠程計算機終端196。來自圖像產生源10的消息包括紋理結構串和,有時,紋理結構程序。
圖27示出通過圖像產生源10發(fā)送到裝置18,194,或從存儲器184、186、188、190、192存儲和檢索用于紋理結構的重建的紋理結構串、二進制字的串行鏈或二進制數(shù)。雖然這里以特定的順序給出元素,但可以理解可以在本發(fā)明的范圍內以不同的順序分配,且可以省去一些元素和加入一些新元素。
第一元素200傳輸用于偽隨機產生器的種子,該偽隨機產生器產生對應每個像素34的z值,如圖8所示。第二元素202包括結合圖9討論過的粗糙度值。
第三元素204包括圖9和10中說明的扭曲函數(shù)點的坐標。第四元素206傳輸扭曲模,如結合圖9和10討論的選擇或者平滑的或者線性插值的。
第五元素208包含結合圖13討論過的寬度畸變因子(Dw)。第六元素210包含也結合圖13討論過的高度畸變因子(Dh)。
第七元素212包含選擇單元格類型的數(shù)據(jù),如圖2A至2E所示的。第八元素214包含確定單元格尺寸的信息。第九元素216包含或者第一加權函數(shù)aweigh的標記,或如結合圖16描述的,用于代替aweigh的另一個加權函數(shù)的值。第十元素218傳輸或者第二加權函數(shù)bweigh的標記,或者用于其位置的第二加權函數(shù)的值。這也是結合圖16描述的。第十一元素220包含圖21中說明的C1,用于選擇正方形152的第一個角的顏色。第十二元素222包含用于選擇正方形152的第二個角的第二顏色C2的標記。第十三元素224包含用于選擇正方形152的第三個角的第三顏色C3。第十四元素226包含用于選擇正方形152的第四個角的第四顏色C4的標記。最后,可選的第十五元素228包含關于將由之前的元素定義的紋理結構施加到哪個物的標記。
可以將紋理結構串198作為無線電波上或電話線上適當?shù)厥褂幂d波或不用載波的串數(shù)據(jù)流。還可以作為一系列并行的字發(fā)送和存儲。
這些少量的數(shù)據(jù)足夠產生復雜的紋理結構并提供速度、帶寬和存儲上的優(yōu)勢。它還具有紋理結構程序小且快的優(yōu)點,使它適合用于小容量的裝置,諸如移動電話或掌上電腦。
權利要求
1.在圖像上產生表面紋理結構的方法,其特征在于,所述方法包括以下步驟采用像素紋理域;對域中每個所述像素分配隨機值;移動所述像素;將所述紋理域分成可卷繞的單元格;及給每個所述像素分配顏色。
2.如權利要求1所述的方法,其特征在于,所述分配隨機值給每個像素的步驟包括控制所述隨機值的粗糙度。
3.如以上任一項權利要求所述的方法,其特征在于,所述移動所述像素的步驟包括扭曲所述像素。
4.如以上任一項權利要求所述的方法,其特征在于,移動所述像素的步驟包括畸變所述像素。
5.如以上任一項權利要求所述的方法,其特征在于,將所述紋理結構域分成可卷繞的單元格的步驟包括選擇所述單元格的形狀的步驟。
6.如以上任一項權利要求所述的方法,其特征在于,所述將所述紋理結構域分成可卷繞的單元格的步驟包括選擇所述單元格尺寸的步驟。
7.如以上任一項權利要求所述的方法,其特征在于,所述分配顏色給每個像素的步驟包括考慮像素的位置。
8.如以上任一項權利要求所述的方法,其特征在于,所述分配顏色給每個像素的步驟包括考慮像素的移動。
9.如以上任一項權利要求所述的方法,其特征在于,所述分配顏色給每個像素的步驟包括在所選的顏色范圍內進行分配。
10.如以上任一項權利要求所述的方法,其特征在于,包括使用計算機程序來產生表面紋理結構。
11.如以上任一項權利要求所述的方法,其特征在于,包括使用紋理結構數(shù)據(jù)串來產生表面紋理結構。
12.用于在圖像上產生表面紋理結構的裝置,其特征在于,所述裝置包括產生像素的紋理結構域的裝置;對域中的每個像素分配隨機值的裝置;移動像素的裝置;將所述紋理結構域分成可卷繞的單元格的裝置;以及分配顏色給每個像素的裝置。
13.如權利要求12所述的裝置,其特征在于,所述分配隨機值給每個像素的裝置包括控制所述隨機值的粗糙度的裝置。
14.如權利要求12至13中的任一項所述的裝置,其特征在于,所述移動所述像素的裝置包括用于扭曲所述像素的裝置。
15.如權利要求12至14中的任一項所述的裝置,其特征在于,所述移動所述像素的裝置包括用于畸變所述像素的裝置。
16.如權利要求12至15中的任一項所述的裝置,其特征在于,所述將所述紋理結構域分成可卷繞的單元格的裝置包括選擇所述單元格形狀的裝置。
17.如權利要求12至16中的任一項所述的裝置,其特征在于,所述將所述紋理結構域分成可卷繞的單元格的裝置包括選擇所述單元格尺寸的裝置。
18.如權利要求12至17中的任一項所述的裝置,其特征在于,所述分配顏色給每個像素的裝置包括響應像素位置的裝置。
19.如權利要求12至18中的任一項所述的裝置,其特征在于,所述分配顏色給每個像素的裝置包括響應像素移動的裝置。
20.如權利要求12至19中的任一項所述的裝置,其特征在于,所述分配顏色給每個像素的裝置包括在所選的顏色范圍內進行分配的裝置。
21.如權利要求12至20中的任一項所述的裝置,其特征在于,使用計算機程序來產生表面紋理結構。
22.如權利要求12至21中的任一項所述的裝置,其特征在于,使用紋理結構數(shù)據(jù)串來產生表面紋理結構。
23.計算機程序,其特征在于,根據(jù)權利要求1至11中所述的方法運行。
24.承載計算機程序的拷貝的存儲裝置,其特征在于,所述計算機程序根據(jù)權利要求1至11中所述的方法運行。
25.計算機裝置,其特征在于,包含一程序來使其根據(jù)權利要求1至11中所述的方法運行。
26.紋理結構串消息,其特征在于,是如權利要求11中所敘述的。
27.計算機,其特征在于,用于產生如權利要求11中所述紋理結構數(shù)據(jù)串。
全文摘要
揭示了用于在很低的速度或帶寬環(huán)境中,或存儲容量有限處傳輸和施加紋理結構指令的方法和裝置;發(fā)明特別用于圖像顯示移動電話(16)中,以及應用于圖像數(shù)據(jù)存儲器(184,186,188,190,192)和用于因特網(wǎng)上。圖像紋理結構由紋理結構串(198)定義,它定義用于從初始表面產生像素的z軸偏移的偽隨機產生的種子數(shù)(200)、用于表面的粗糙度值(202)、扭曲函數(shù)值(204、206)、畸變函數(shù)值(208、210)、紋理結構單元格類型和尺寸數(shù)據(jù)(212、214)顏色信息(216、218、220、222、224、226)以及指定紋理結構用于哪里(228)。單元格(20)蓋疊并卷繞。
文檔編號G06T15/00GK1494703SQ02805856
公開日2004年5月5日 申請日期2002年3月1日 優(yōu)先權日2001年3月1日
發(fā)明者J·G·格羅夫, J G 格羅夫 申請人:蘇坡斯坎伯公共有限公司