游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3084|回复: 6

indexbuffer使用

[复制链接]

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2006-5-25 18:15:00 | 显示全部楼层 |阅读模式
int[] pIndices = (int[])(detectee.IndexBuffer.Lock(0, typeof(int), LockFlags.ReadOnly, (detectee.NumberFaces)*3));//detectee是一个mesh型的变量
这是我写的一个想把indexbuffer里面的数据以数组的形式输出的代码,但是总是跑出异常,我想可能是数组长度定义有问题吧,还请各位高人指点 [em10]

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2006-5-25 18:43:00 | 显示全部楼层

Re:indexbuffer使用

typeof(WORD) 试试。最好的办法是检查顶点索引是16位还是32位。

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-5-25 21:51:00 | 显示全部楼层

Re:indexbuffer使用

  现在的int可是64位的哦。

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-26 09:49:00 | 显示全部楼层

Re:indexbuffer使用

我改成short就好了,不过只能负值给system.array,好像直接给int[]还有问题,唉对于C#只是临时抱佛脚,很是不熟悉啊
对了indexbuffer会不会因此就限制了定点的数量(杞人忧天?!)

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-26 13:39:00 | 显示全部楼层

Re:indexbuffer使用

short int是16位的,等同于1楼说的WORD
因为索引长度的限制,index buffer对顶点是有限制的,16位的索引缓冲只能支持最多64K个顶点,但32位索引缓冲的可以支持到42亿,所以没必要担心

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-27 13:51:00 | 显示全部楼层

Re:indexbuffer使用

谢谢,各位大虾

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-6-1 09:52:00 | 显示全部楼层

Re:indexbuffer使用

最近发现,我在3ds max里面做的模型的属性是26 vertices,46 surfaces
转成的.x文件也是26,46,可是读到程序里面顶点成了46*3了,计算量一下就打了
大人们帮帮我啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 15:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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