游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: hmhm

hmhm的D3D白痴问题一罗筐

[复制链接]

1

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2004-5-22 01:25:00 | 显示全部楼层

Re:hmhm的D3D白痴问题一罗筐

这个。。。。。

在你调用setIndices的时候d3d调用了你的index buffer的addRef函数增加了一个引用技术。。。。。如果你不调用setxx(null)的话。你的index buffer的ref count就会保持在2(呃。。。。希望你能明白我的意思)

setindices(buffer)
{
     if(prev buffer pointer is not null)
            prev->release();

     if(bufer is not null)
            buffer->addref();

     // xxxxxx
}

伪代码。。。。。。。。。明白了么?

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
 楼主| 发表于 2004-5-22 01:51:00 | 显示全部楼层

Re: Re:hmhm的D3D白痴问题一罗筐

tiamo: Re:hmhm的D3D白痴问题一罗筐

这个。。。。。

在你调用setIndices的时候d3d调用了你的index buffer的addRef函数增加了一个引用技术。。...

完全了解。非常感谢tiamo。

“This method increments the reference count of the index buffer being assigned and decrements the reference count of the previously assigned index buffer.When the index buffer is no longer needed, set it to NULL. If you fail to do this, the index buffer is not released, resulting in a memory leak”
原话是这样的。我只看到了后一句,却没仔细看前一句。它提到setIndices方法会增加index buffer的引用引数,我却没有仔细的阅读,实在是惭愧之极。

[em5] [em5] [em5] [em5] [em5]

再次感谢给予我帮助的朋友们。

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
 楼主| 发表于 2004-5-29 01:28:00 | 显示全部楼层

Re: hmhm的D3D白痴问题一罗筐

呵呵,我又有新问题了,还请大家多多帮忙。

问题2:
假设我现在有一个由三角带构成的条形,我需要将其变形为正弦波状条形,应该如何做呢? (请不需要告诉我Lock、计算顶点、Unlock,我会晕倒的 -_-b)
即:如何将一个参数方程应用到某个顶点集合中的每一个成员?

PS:在SDK的例子中,似乎Vertex Blending例子与此有关。但SDK中关于Vertex Blending的相关介绍少得可怜。哪位朋友有空闲的话,能否讲讲Vertex Blending。非常感谢。

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-5-29 03:12:00 | 显示全部楼层

Re:hmhm的D3D白痴问题一罗筐

根本不用什么Vertex Blending。使用VS查表就可以了。
以正弦波动为例
首先,在VS的const register中存放sin(x)在x从0-2pi的一些离散采样值。假设从C30-C93存放了64个等分函数值。
然后在VS中,在做world/view/project之前,也就是在模型空间中修改顶点值,比如你这个条带在模型空间中是xy平面沿x方向的。你定一个起点,然后就使用position的x值与它相减得到偏移距离(选定起点的要求是要使此差值恒大于0),然后乘上波长倒数得到‘相位/2pi’。再取小数部分(frc),接下来乘64放大到查表范围。然后加上表初始偏移(这个例子就是30)使用a0.x进行查表,将得到的结果直接作用于模型空间的z值就可以了。
接下来进行world/view/project变换和其他必要的计算,不用我赘述了吧。
在求得‘相位/2pi’的过程中如果包含时间因子就可以做出随时间变化的效果。很简单的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-1 17:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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