游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4314|回复: 12

LL3D .net准2D图形引擎 重要节点

[复制链接]

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-12-19 00:36:00 | 显示全部楼层 |阅读模式
版本号直接冲到0.05。
加入了多线程渲染,提供了贴图管理、树型渲染管理,从xml中读取数据。
给2D游戏提供低级图形底层已经可以了。
已经是一个有一点点用的东东了,
最重要是开源,初学的朋友可以拿去研究一下。

嗯,是个重要节点,开发2D游戏的朋友,可以基于此引擎发展哦。
图形暂告一段落,开始弄网络部分。

vs2003开发
下载页面:http://trinity.gameres.com/LL3D.htm

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
 楼主| 发表于 2005-12-19 01:22:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

偶又来了,加入了可降低cpu占用率的0.05a。
还有就是,光引擎的价值不大,如果大家觉得什么功能有用的,不妨告诉我,作个针对的例子可能更有用。

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2005-12-19 06:04:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

lights这个抛砖引玉的引擎可真正是vb区的宝物哦~

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-12-19 08:13:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

LIGHTS也加入三国英豪开发了?
阵容强大呀!

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-12-19 11:28:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

我从没有看见过多线程的渲染的例子,微软也没有提及此事,而且也没有申明他的DX对象是多线程安全的,包括他的GDI Plus都是如此。

而且你这样带来的问题是所有的DX对象在更新时不知道渲染设备状态,渲染时却不知道数据准备状态,如果要解决此事,势必要对核心对象添加锁。

我不知道你明白我的意思没有。

那么微软是如何解决此事的呢,微软在他的DX10文档中已经很好的描述了这个问题(关于CPU利用率的问题)。实际上,大家可以看看微软的示例,CPU在渲染是永远不会是100%,CPU在非渲染时如果CPU利用率是100%不是渲染的问题而是我们程序自己的问题。

不过反而是你的多线程程序加大了CPU的利用率,如把m_nStopRender设置为0,那么当不需要渲染的时候或者渲染数据未准备好时,你的渲染线程依旧在运行。你可以运行一下Tutorial的所有例子,里面没有一句Sleep,但是当[渲染]时几乎不占用CPU。

continue。。。。。。

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-12-19 11:52:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

还有个问题,你的渲染的对象只能增加Add和清空Clear,怎么不允许移出Remove?

如果你增加了Remove,那么请试验一下增加5000个,然后移出5000个,然后再增加1000个,再调用你的Clear清空,注意我说的是new,那么你可以观察一下内存的变化。

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
 楼主| 发表于 2005-12-19 11:53:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

楼上,微软例子1
                while(frm.Created)
                {
                    frm.Render();
                    Application.DoEvents();
                }
         微软例子2
            while(msg.msg != NativeMethods.WindowMessage.Quit)
            {
                gotMessage = NativeMethods.PeekMessage(out msg, IntPtr.Zero, 0, 0, NativeMethods.PeekMessageFlags.Remove);
                if (gotMessage)
                {
                    NativeMethods.TranslateMessage(ref msg);
                    NativeMethods.DispatchMessage(ref msg);
                }
                else
                {
                    // Render a frame during idle time (no messages are waiting)
                    Render3DEnvironment();
                }
            }

明明都有sleep吧

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
 楼主| 发表于 2005-12-19 11:56:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

嗯,.net的垃圾回收机制我不太熟。看你说的,应该是我造成了内存泄露。

没有remove是暂时没有用到。

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
 楼主| 发表于 2005-12-19 11:59:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

关于多线程,只是单开一个渲染线程,而且我的渲染线程有分渲染和不渲染状态,这种用法并不是我首创。在整体上取得的编码灵活和效率优势是明显的。对于不能并行执行的代码,是一定要检查状态的,用到的时候就会同步了。还有谢谢你帮我检查出问题,一定会改正。

1

主题

23

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2005-12-23 10:53:00 | 显示全部楼层

Re:LL3D .net准2D图形引擎 重要节点

怎么用呀。。。。我这有几个不太会的朋友想学着做游戏。。
没有什么知识。。。就是一腔热情。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 02:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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