2009-05-29 79 views
11

我正在用ROAM(連續的細節層次)完成3D星球。CLOD星球在OpenGL中的紋理變形

我現在的目標是使用紋理進行高質量的渲染。

我試圖找到一種方法,我可以使用平鋪系統(小紋理合並),但在某種程度上我可以利用我的CLOD網格。

使用這種拼貼系統的當前算法(從我發現的)可以產生巨大的紋理,然後直接應用它。這不是我想要的......這個星球非常大,我想要比僅僅增加紋理尺寸更多的力量。

這種東西是否有任何已知的算法/ opengl功能?

我對顏色沒有太多瞭解,但是有可能創建一個單獨繪製對象......我的意思是,不給texcoords,但爲每個像素(不是頂點)提供正確的顏色網?

PS:我的世界是使用Perlin雜內置......這樣我就可以在世界上任何一點的高度(有無限的分辨率高度圖)

+2

真棒問題,唉我退出了一段時間的投票 – dss539 2009-05-29 21:54:10

+1

像素着色器做你想做的事情:對於每個像素,計算它應該是什麼顏色。着色語言有一些嚴格的限制,但像「點積」和「在1d/2d/3d地圖中查找」這樣的動作是原語。 – pjc50 2009-06-01 14:05:45

回答

2

您已經使用3D Perlin雜點的地形,爲什麼不產生紋理呢?通常,Terragen,Vistapro等程序使用高度從調色板中隨機選擇一個顏色範圍,根據斜率修改該顏色,並可能根據斜率和高度添加較小紋理的細節。在你的情況下,距離也可以修改細節。對於這個問題,二維珀林噪聲對於細節紋理很有效。

你是否修改過高度圖?像純海洋一樣的東西很難用純三維柏林噪音來實現,但是將一切都降到一定的高度以下並且應用一個很好的算法海洋紋理(適當地調整二維柏林噪音,並且透明度低於一定水平)看起來會很好。