游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1358|回复: 2

请教各位高手两个问题,谢谢了!

[复制链接]

17

主题

64

帖子

64

积分

注册会员

Rank: 2

积分
64
发表于 2004-9-12 12:56:00 | 显示全部楼层 |阅读模式
问题一:如何动态的分配pVertices    pIndex呢?每次大小都不同
如果这样写
CUSVERTEX pVertices = new CUSTERTEX[...];
m_pVB->Lock(0,0,(void**)&pVertex,0);
。。。
m_pVB->Unlock;
。。。
delete [] pVertices  //出错!!!

问题二:为什么开启不开启CULLING,祯数一点都没变??还有如果图形移动到了视截体外,D3D似乎仍然渲染了它?

本人正在为提高桢数,节约内存而努力,谢谢各位高手指教了!

29

主题

421

帖子

436

积分

中级会员

Rank: 3Rank: 3

积分
436
发表于 2004-9-12 14:19:00 | 显示全部楼层

Re: 请教各位高手两个问题,谢谢了!

一、
CUSVERTEX pVertices = new CUSTERTEX[...];
CUSVERTEX * pVoid;
m_pVB->Lock(0,0,(void**)&pVoid,0);
memcpy(pVoid, pVertexBuffer, sizeof(CUSVERTEX )*???);
m_pVB->Unlock();
delete [] pVertices  //就不出错了!!!
二、正确开启CULLING了吗?或者fps显示正确嘛?
三、还有如果图形移动到了视截体外,D3D似乎仍然渲染了它?你需要告诉D3D那个图形不要渲染了。
四、本人正在为提高桢数,节约内存而努力。
不着急,先了解一下d3d的基础知识。

低手来赚贴子分,高手末怪。嘿嘿嘿。

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-9-12 15:16:00 | 显示全部楼层

Re:请教各位高手两个问题,谢谢了!

CUSVERTEX pVertices = new CUSTERTEX[...];
m_pVB->Lock(0,0,(void**)&pVertex,0);
。。。
m_pVB->Unlock;
。。。
delete [] pVertices  //出错!!!

你用动态VB,根本不用自己分配内存啊
CUSVERTEX pVertices = new CUSTERTEX[...];
delete [] pVertices ;
这两句是错误的
只需要简单的声明 pVertices 就可以了,如下
CUSVERTEX* pVertices;
而且在UNLOCK之后也不用显式释放

至于 CULL的问题,那可能是因为你绘制的PRIMITIVE数量太小
根本看不出实际效果的,现代硬件的多边形生成能力是很恐怖的

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-18 15:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表