永远也不完美的程序

不断学习,不断实践,不断的重构……

常用链接

统计

积分与排名

好友链接

最新评论

最新-基于四叉树的LOD地形设计

        上次说过要在这里把最新的地形设计写出来,不过一直没时间写,也想画些UML图,但没工具画,呵呵,只能通过手写了。希望大家看得明白吧。
        基本设计思想:
        主要有以下几个类,
        CTerrainBlock,地形一个block,每个对象拥有自己的顶点缓冲和相对应的LOD值。
        HeightMap类,读入高度图,并根据策略创建一定数量的CTerrainBlock。例如1024x1024的地形,我把每个block大小设置为64x64,那么这个HeightMap有16 x 16个block。
        CQuadTree类,四叉树类,根据block的大小划分四叉树。

        基本流程:当场景渲染时,在场景UpdateScene的时候,首先Update了Camera数据,然后从新计算Frustum,然后调用m_quadTree.GetRenderObject(list& renderList)函数,以递归形式把quadTree中的在可视区内的渲染对象加到渲染队列,加入队列前并计算出CTerrainBlock的LOD值。到渲染时,首先根据地形的LOD值与相邻四个作判断,然后修补裂缝,具体做法是动态改变IB的值,有些LOD算法是一开始就根据不同的LOD和四边的情况生成N个公共的IB,到渲染时可根据当前情况选择合适的IB以解决裂缝问题。这样可省去计算IB的时间,不过IB的数量会增多,就是以内存换时间。我现在的做法是以时间换内存。
        下面是UpdateScene的代码:
void CTerrainSceneManager::UpdateScene()
{
    
//在这里应该把所有object更新一次,然后更新渲染队列
    CAMERAINST->Update();

    FRUSTUM
->CalculateFrustum();

    m_listRender.clear();
    m_quadTree.GetRenderableObject(m_listRender);

    
//下面的代码也可以在每个Object的Render时调用Update,这里我还没体会到底放在哪里好。当时考虑到shader的调用,所以放到Render里,把这里注释了。
    
//for (list<CTerrainBlock*>::iterator it = m_listRender.begin(); it != m_listRender.end(); it++)
    
//{
    
//    (*it)->Update();
    
//}
}

下面是CTerrainBlock的部分代码
  1void CTerrainBlock::Update()
  2{
  3    
  4    FixCrack(TERRAINSCENE->GetTerrain());  //候补裂缝
  5    m_dwTotalIndex = ComputeIndics();      //计算索引并填充IB
  6    //UpdateShader();
  7    UpdateEffect();                        //更新Shader
  8}

  9
 10void CTerrainBlock::FixCrack(CHeightMap* pTerrain)
 11{
 12    m_nLeftIndexCount = 0;
 13    m_nRightIndexCount = 0;
 14    m_nBottomIndexCount = 0;
 15    m_nTopIndexCount = 0;
 16
 17    //上方
 18    CTerrainBlock* pBlock = pTerrain->GetBlock(m_nNeighbor[0]);
 19
 20    if (pBlock)
 21    {
 22        FixCrackEdge(pBlock->GetLODLevel(), BLOCK_TOP);
 23    }

 24
 25    //右方
 26    pBlock = pTerrain->GetBlock(m_nNeighbor[1]);
 27
 28    if (pBlock)
 29    {
 30        FixCrackEdge(pBlock->GetLODLevel(), BLOCK_RIGHT);
 31    }

 32
 33    //下方
 34    pBlock = pTerrain->GetBlock(m_nNeighbor[2]);
 35
 36    if (pBlock)
 37    {
 38        FixCrackEdge(pBlock->GetLODLevel(), BLOCK_BOTTOM);
 39    }

 40
 41    //左方
 42    pBlock = pTerrain->GetBlock(m_nNeighbor[3]);
 43
 44    if (pBlock)
 45    {
 46        FixCrackEdge(pBlock->GetLODLevel(), BLOCK_LEFT);
 47    }

 48}

 49
 50void CTerrainBlock::FixCrackEdge(int nNeighborLevel, BLOCKEDGE edge)
 51{
 52    if (m_nLODLevel == 3 || nNeighborLevel == m_nLODLevel)
 53    {
 54        return;
 55    }

 56    if ((nNeighborLevel - m_nLODLevel) == 1)
 57    {
 58        switch(edge)
 59        {
 60        case BLOCK_TOP:
 61            //m_vtTopEdge.clear();
 62            m_nTopIndexCount = 1;
 63
 64            break;
 65        case BLOCK_RIGHT:
 66            m_nRightIndexCount = 1;
 67
 68            break;
 69        case BLOCK_BOTTOM:
 70            m_nBottomIndexCount = 1;
 71
 72            break;
 73        case BLOCK_LEFT:
 74            m_nLeftIndexCount = 1;
 75
 76            break;
 77        }

 78    }

 79    else if ((nNeighborLevel - m_nLODLevel) == 2)
 80    {
 81        switch(edge)
 82        {
 83        case BLOCK_TOP:
 84            m_nTopIndexCount = 3;
 85
 86            break;
 87        case BLOCK_RIGHT:
 88            m_nRightIndexCount = 3;
 89
 90            break;
 91        case BLOCK_BOTTOM:
 92            m_nBottomIndexCount = 3;
 93
 94            break;
 95        case BLOCK_LEFT:
 96            m_nLeftIndexCount = 3;
 97
 98            break;
 99        }

100    }

101}

102
103void CTerrainBlock::ComputeNeighbor()
104{
105    m_nNeighbor[0= m_nTopLeftX + (m_nTopLeftY - m_wGridsPerRow) * m_dwTerrainSize;   //上方
106    m_nNeighbor[1= m_nTopLeftX + m_wGridsPerRow + m_nTopLeftY * m_dwTerrainSize;     //右方                                                           //右方
107    m_nNeighbor[2= m_nTopLeftX + (m_nTopLeftY + m_wGridsPerRow) * m_dwTerrainSize;   //下方                                                             //下方
108    m_nNeighbor[3= m_nTopLeftX - m_wGridsPerRow + m_nTopLeftY * m_dwTerrainSize;     //左方                                                      //左方
109}

110
111DWORD CTerrainBlock::ComputeIndics()
112{
113    WORD* pIndices = NULL;
114
115    m_pIndexBuffer->Lock(00, (void**)&pIndices, NULL);
116
117    DWORD dwIndex = 0;
118    
119    DWORD dwTopLeft = 0;//m_data.dwTopLeft;     //声明,topleft是要在block里的topleft,而不是在整个地形的topleft
120    DWORD dwTopRight = m_wBlockSize - 1;
121    DWORD dwBottomRight = m_dwNumBlockVertices - 1;
122    DWORD dwBottomLeft = dwBottomRight - (m_wBlockSize - 1);
123    if (m_nLODLevel == 3)   //最大层
124    {
125        for (DWORD nRow = 0; nRow < m_nRealCell; nRow++)    //
126        {
127            for (DWORD nCol = 0; nCol < m_nRealCell; nCol++)  
128            {
129                *(pIndices + dwIndex++= dwTopLeft + nCol * m_wIndexStride + nRow * m_wIndexStride * m_wBlockSize;
130                *(pIndices + dwIndex++= dwTopLeft + (nCol + 1* m_wIndexStride + nRow * m_wIndexStride * m_wBlockSize;
131                *(pIndices + dwIndex++= dwTopLeft + (nCol + 1* m_wIndexStride + (nRow + 1* m_wIndexStride * m_wBlockSize;
132
133                *(pIndices + dwIndex++= dwTopLeft + nCol * m_wIndexStride + nRow * m_wIndexStride * m_wBlockSize;
134                *(pIndices + dwIndex++= dwTopLeft + (nCol + 1* m_wIndexStride + (nRow + 1* m_wIndexStride * m_wBlockSize;
135                *(pIndices + dwIndex++= dwTopLeft + nCol * m_wIndexStride + (nRow + 1* m_wIndexStride * m_wBlockSize;
136            }

137        }

138
139    }

140
141    if (m_nLODLevel <= 2)        //第二、第三层
142    {
143        //处理上边
144        if (m_nTopIndexCount == 1)
145        {
146            for (DWORD nCol = 0; nCol < m_nRealCell; nCol += 2)
147            {
148                DWORD dwBottom = dwTopLeft + (nCol + 1* m_wIndexStride + m_wIndexStride * m_wBlockSize;//m_wIndexStride + m_wIndexStride * m_wBlockSize + nCol * m_wIndexStride * 2;
149
150                if (nCol == 0)    //处理右边的三角形
151                {
152
153                    *(pIndices + dwIndex++= dwBottom;
154                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride - m_wIndexStride * m_wBlockSize;
155                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride;
156                }

157                else if (nCol == m_nRealCell - 2)
158                {
159                    //左下边三角形
160                    *(pIndices + dwIndex++= dwBottom;                          
161                    *(pIndices + dwIndex++= dwBottom - m_wIndexStride;
162                    *(pIndices + dwIndex++= dwBottom - m_wIndexStride - m_wIndexStride * m_wBlockSize;
163                }

164                else
165                {
166                    //左下边三角形
167                    *(pIndices + dwIndex++= dwBottom;                          
168                    *(pIndices + dwIndex++= dwBottom - m_wIndexStride;
169                    *(pIndices + dwIndex++= dwBottom - m_wIndexStride - m_wIndexStride * m_wBlockSize;
170
171                    //右下边三角形
172                    *(pIndices + dwIndex++= dwBottom;                          
173                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride - m_wIndexStride * m_wBlockSize;
174                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride;
175                }

176
177                //处理上边的三角形
178                *(pIndices + dwIndex++= dwBottom;                          
179                *(pIndices + dwIndex++= dwBottom - m_wIndexStride - m_wIndexStride * m_wBlockSize;
180                *(pIndices + dwIndex++= dwBottom + m_wIndexStride - m_wIndexStride * m_wBlockSize;
181
182            }

183        }

184        else if (m_nTopIndexCount == 3)
185        {
186            for (DWORD nCol = 0; nCol < m_nRealCell; nCol += 4)
187            {
188                DWORD dwBottom = dwTopLeft + (nCol + 2* m_wIndexStride + m_wIndexStride * m_wBlockSize;
189
190                if (nCol == 0)    //处理右边的三角形
191                {
192                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride;
193                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride * 2 - m_wIndexStride * m_wBlockSize;
194                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride * 2;
195                }

196                else if (nCol == m_nRealCell - 4)
197                {
198                    //左下边三角形
199                    *(pIndices + dwIndex++= dwBottom - m_wIndexStride;                          
200                    *(pIndices + dwIndex++= dwBottom - 2 * m_wIndexStride;
201                    *(pIndices + dwIndex++= dwBottom - 2 * m_wIndexStride - m_wIndexStride * m_wBlockSize;
202                }

203                else
204                {
205                    //左下边三角形
206                    *(pIndices + dwIndex++= dwBottom - m_wIndexStride;                          
207                    *(pIndices + dwIndex++= dwBottom - 2 * m_wIndexStride;
208                    *(pIndices + dwIndex++= dwBottom - 2 * m_wIndexStride - m_wIndexStride * m_wBlockSize;
209
210                    //右下边三角形
211                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride;                          
212                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride * 2 - m_wIndexStride * m_wBlockSize;
213                    *(pIndices + dwIndex++= dwBottom + m_wIndexStride * 2;
214                }

215
216                //处理上边的3个三角形
217                *(pIndices + dwIndex++= dwBottom;                          
218                *(pIndices + dwIndex++= dwBottom - m_wIndexStride;
219                *(pIndices + dwIndex++= dwBottom - 2 * m_wIndexStride - m_wIndexStride * m_wBlockSize;
220
221                *(pIndices + dwIndex++= dwBottom;                          
222                *(pIndices + dwIndex++= dwBottom - 2 * m_wIndexStride - m_wIndexStride * m_wBlockSize;
223                *(pIndices + dwIndex++= dwBottom + 2 * m_wIndexStride - m_wIndexStride * m_wBlockSize;
224
225                *(pIndices + dwIndex++= dwBottom;                          
226                *(pIndices + dwIndex++= dwBottom + 2 * m_wIndexStride - m_wIndexStride * m_wBlockSize;
227                *(pIndices + dwIndex++= dwBottom + m_wIndexStride;
228
229            }

230        }

231        else if (m_nTopIndexCount == 0)    //不需要修补
232        {
233            for (DWORD i = 0; i < m_nRealCell; i++)
234            {
235                if (i == 0)
236                {
237                    *(pIndices + dwIndex++= dwTopLeft + m_wIndexStride + m_wIndexStride * m_wBlockSize;
238                    *(pIndices + dwIndex++= dwTopLeft;
239                    *(pIndices + dwIndex++= dwTopLeft + m_wIndexStride;
240
241                }

242                else if (i == m_nRealCell - 1)
243                {
244                    *(pIndices + dwIndex++= dwTopLeft + i * m_wIndexStride + m_wIndexStride * m_wBlockSize;
245                    *(pIndices + dwIndex++= dwTopLeft + i * m_wIndexStride;
246                    *(pIndices + dwIndex++= dwTopRight;
247                }

248                else
249                {
250                    *(pIndices + dwIndex++= dwTopLeft + (i + 1* m_wIndexStride + m_wIndexStride * m_wBlockSize;
251                    *(pIndices + dwIndex++= dwTopLeft + i * m_wIndexStride + m_wIndexStride * m_wBlockSize;
252                    *(pIndices + dwIndex++= dwTopLeft + i * m_wIndexStride;
253
254                    *(pIndices + dwIndex++= dwTopLeft + i * m_wIndexStride;
255                    *(pIndices + dwIndex++= dwTopLeft + (i + 1* m_wIndexStride;
256                    *(pIndices + dwIndex++= dwTopLeft + (i + 1* m_wIndexStride + m_wIndexStride * m_wBlockSize;
257                }

258            }

259        }

260    
261    
262}


这样LOD的地形大概完成,下面是DEBUG版本贴图:
1025 x1025 的地形:


WireFrame截图:


129x129截图:


因为129X129的顶点数较少,所以开了水面反射与折射帧数还是比较高。

posted on 2009-01-10 16:19 狂烂球 阅读(6021) 评论(73)  编辑 收藏 引用 所属分类: 图形编程

评论

# re: 最新-基于四叉树的LOD地形设计 2009-03-11 13:07 溜溜

大哥把你的程序发我一份行吗?谢谢了!!正在研究 249127959@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-03-11 13:07 溜溜

再次谢谢   回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-03-14 17:26 gatt

我也需要,能不能发一份给我,谢谢!!
gatt@21cn.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-03-21 13:57 李季

我也想学习学习啊 发一份我行吗?
470152949@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-03-28 22:02 billy

请发一份程序给我学习学习,你做的这个地形真不错。。。。谢谢
1986818lb@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-03-30 04:28 sazabileon

请问能把程序发我一份学习一下吗?最近在搞这个算法非常头痛,谢谢了~~
sazabileon@yahoo.com.cn  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-04-01 23:03 明天

能发我一份吗
kuangben2001@163.com
先谢了  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-04-02 10:54 everett

代码也发我一份好吗 最近再研究相关的东西 先谢谢了。。
foreverjingli@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-04-16 22:14 yliuman

最近正在学习地形显示,发一份给我学习学习,先谢了!
yliuman@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-04-17 13:33 friend

能不能发一份LOD 源码给我,最近正在学习,谢谢,邮箱:rainlinemy@yahoo.com.cn  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-05-01 13:13 danile

能发份我吗?最近找资料刚好上来了,谢谢,邮箱:6953405@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-05-06 23:00 向往

好文,若方便麻烦你发源文件到我邮箱:ztingliang@126.com.谢谢!~  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2009-05-08 11:45 jay

能发一份源码给我啊,我现在正在研究这个算法,谢谢,我的邮箱:wwjbag@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-05-09 20:17 Lee Wang

能发我一份源码么?谢谢啦
wangli_first@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-05-10 09:58 Keng xiong

能发一份源码给我啊,我现在正在研究这个算法,谢谢,我的邮箱:kxteng33@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-05-16 08:31 arun

想要你的源码做参考和学习 谢谢----rfc_1984@hotmail.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-06-02 23:35 Pan7an

代码也发我一份好吗 最近再研究这个算法,谢谢
pyx0622@gmail.com   回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-06-03 08:58 daxiong

也能发我一份吗?谢谢,邮箱:yundaolewo11@sina.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-06-30 11:56 nst

大哥,我是一个3D爱好者,能发给我以份源码学习一下吗?谢谢了啊。  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-07-20 23:20 小七

衷心感谢。115580581@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-08-28 23:59 初学地形

能够给我源码吗? 谢谢
谢谢

非常感谢

fero2009@126.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-09-14 12:34 小陈

能也给我一份吗?最近也在研究地形,谢谢,我的邮箱是371161810@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2009-10-03 17:38 Star

呵呵。。LZ优化需要加强。。理论上4097*4097能跑到35FPS的。。  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-10-03 22:57 梁蔼然

@Star
是需要再优化一下,不过我这里的SHADER写得不好,4097的跑到35是DEBUG还是RELEASE呢?  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-10-19 16:06 您好

可以发我一份代码吗?
顺便加一下您的qq号,呵呵。

一起发过来吧, 交流一下 csnever@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-11-15 16:33 你好

你好,正在学习LOD,能发一份源代码给吗?
zy-li@tom.com
谢谢  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-11-16 19:41 tian

楼主能否发我一份源码,最近本科毕业设计在做地形算法,想参考下楼主的算法,十分感谢. 我的邮箱471108295@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2009-11-26 09:33 qianlvqiu

给我一份,谢谢啦,学习了
qianlvqiu@sina.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2009-12-29 09:35 Lemon

你好..能发一份给我吗?最近想得有点头大了..谢谢你~!
qlemonq@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-01-08 14:52 无聊

梁生,竟然甘多人要  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-02-10 01:12 rainlinemy

你好,最近正在研究LOD,能把你的源码发一份吗?
邮箱:rainlinemy@yahoo.com.cn  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-02-26 23:10 LOD

你好..能发一份给我吗?最近想得有点头大了..谢谢你~!
woozylong@gmail.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-03-02 16:01 iger

楼主,给我也发一份 ,谢谢了。。邮箱:igerer@163.com   回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-03-15 17:23 lichangan

楼主,感谢您给我发一份源码好吗,谢谢了,8246390@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-05-14 09:22 贾浅

您好,我最近也在研究运用LOD地形渲染,把您的代码给我发一份吧,先谢谢啦!!  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-05-14 09:24 贾浅

我的邮箱jiaqianprivate@163.com,谢谢拉  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-05-21 16:47

楼主,可否把你的程序发给我一份?最近正在研究这个,谢谢!
我的邮箱yangliqun06@gmail.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-06-02 18:40

楼主,我最近也在研究运用LOD地形渲染, 可否把你的程序发给我一份 yuisunn@gmail.com 先謝謝  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-06-21 13:45 black0592

能否也发一根给我 zhihai0592@sina.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2010-07-08 09:26 Michael

可以发我一份吗, michaelgamedesigner@hotmail.cm  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2010-07-08 09:27 Michael

michaelgamedesigner@hotmail.com 谢谢  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-08-03 11:29 suerey

lz,如果点是格网的话的不规则的地形能适用吗?
可以发份代码给我吗?313498985@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-08-13 11:41 t68133160

今天看到你的文章能给我一份代码吗?t68133160@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-11-02 13:37 essance

正在研究这个,前辈能给一份代码我参考参考吗?不甚感激吖...
我的邮箱是:essance@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-11-03 17:09 陈安太

前辈给我发一份吧,太感谢了,我的邮箱linyiantai@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2010-12-16 13:42 xiaodiezi

楼主,我最近也在学习这能,能发一份代码给我吗?谢谢!
986772462@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2011-03-17 17:17 让人人

有些LOD算法是一开始就根据不同的LOD和四边的情况生成N个公共的IB,到渲染时可根据当前情况选择合适的IB以解决裂缝问题。这样可省去计算IB的时间,不过IB的数量会增多,就是以内存换时间。我现在的做法是以时间换内存。

哈哈以前就是用这种方式实现的,内存占用确实比较大  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2011-04-27 18:03 zxy

楼主,我最近也在学习这块,可以把您的源代码发我一份吗?455408994@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2011-05-07 16:12 Jacky

最近在研究--D3D 室外地形设计相关内容,能发一份源代码给我不?非常感谢!!390007404@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2011-05-08 17:11 Jacky

你有收到源代码吗?发我一份怎样?@zxy
  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2011-05-08 18:14 Jacky

能发一份源代码给我不?谢谢@溜溜
  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2011-05-08 18:16 Jacky

能发一份源代码不?390007404@qq.com 谢谢@溜溜
  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2011-05-08 18:18 Jacky

能发一份源代码不?390007404@qq.com 谢谢@billy
  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2011-05-08 18:18 Jacky

能发一份源代码不?390007404@qq.com 谢谢@yliuman
  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2011-06-13 01:22 郑帅

求发一份源代码 08301090@bjtu.edu.cn  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2011-06-27 11:39 master3758

能发一份源代码不?master3758@gmail.com,谢谢~  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2011-09-30 17:19 liming

您好,可以发一份源代码给我么,自己最近在研究写一个小型的3D游戏引擎,看到你这里处理地形效果很棒,我也想试试……邮箱liming0606@sina.cn  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2011-12-07 19:02 kathy

我有一些关于directx的问题想请教,请加q
422061911
刚刚开始学习directx,您的这个程序我还不太读得懂。。  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2012-02-26 16:56 大哥,能发份源码不 348732178@qq.com

很好的东西  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2012-02-26 16:56 大哥,能发份源码不 348732178@qq.com

很好的东西,学习借鉴一下  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2012-03-25 01:02 谢凌云

求源码,现在开始接触四叉树的LOD算法,我的毕业设计题目就是相关的,希望可以借鉴一下 xielingyun2007@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2012-04-02 10:41 brenna

很好的东西,很想学习,能给个源码吗?564054523@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2012-06-19 20:07 benlong

靠!这么多要代码的,我也要 wblong9115@gmail.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2012-08-15 18:06 里哈

同求一份源代码,lihaha1985@126.com,不甚感激!  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2012-10-24 16:31

本人也正在学习三维地形,希望能够提供一份源码供参考学习。谢谢!lygsmy.2007@163.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2012-11-22 16:41 小鸟

本人菜鸟阶段,希望能够提供一份源码供参考学习。谢谢!
QQ:472502272  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2013-09-23 09:35 Q

正在学习四叉树LOD,同求一份代码,多谢~~~
423322338@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2013-09-23 10:50 纳尼

正在学习四叉树LOD,同求一份代码,多谢515545140@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2013-11-09 14:14 上份额

看到阁下作品很是喜欢,同求一份代码,多谢~~~ illiy@aliyun.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2013-12-27 09:53 yuanmu

同求:630798143@qq.com,谢谢  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计 2015-01-04 19:29 fang

大家回复这么多应该您都给代码了吧,麻烦给我也发一份吧 854911348@qq.com  回复  更多评论   

# re: 最新-基于四叉树的LOD地形设计[未登录] 2016-04-06 16:58 wang

正在学习四叉树LOD,同求一份代码,多谢1689350222@qq.com   回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理