社区
游戏开发
帖子详情
我要用OpenGL做一个实时动画显示的程序,对数据量要求很大,请大家给点意见(高分)
arethe
2007-10-26 08:15:46
我的程序要实时采点,实时绘制,要求画面连贯。数据量非常大,一般来讲,点数有7、8M之多。
程序运行的环境配置很低,接近于嵌入式机器,没有图形加速卡。
我试过每采一个点立即刷新的方法绘图,但是很慢,画面一顿一顿的。
请大家给点意见,有没有比较好的算法,或者给我推荐点资料或图书吧。
谢谢。
...全文
212
7
打赏
收藏
我要用OpenGL做一个实时动画显示的程序,对数据量要求很大,请大家给点意见(高分)
我的程序要实时采点,实时绘制,要求画面连贯。数据量非常大,一般来讲,点数有7、8M之多。 程序运行的环境配置很低,接近于嵌入式机器,没有图形加速卡。 我试过每采一个点立即刷新的方法绘图,但是很慢,画面一顿一顿的。 请大家给点意见,有没有比较好的算法,或者给我推荐点资料或图书吧。 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
AliasKavin
2008-06-20
打赏
举报
回复
图形加速卡是比较麻烦的~~~~ CPU计算图形的话速度不会很快~~
wangweintk
2008-06-19
打赏
举报
回复
你的速度取决于2个方面:
(1)采集速度;(2)绘制速度。
你需要先确定主要是什么因素影响了你的最终速度。如果是采集速度太慢,情况允许的话,设缓冲区,不允许的话,减少采集量,或许还有其它办法,那就只有等高人解答了。如果是绘制速度太慢,可以考虑使用列表、减小纹理/光照(如果有的话)等方法进一步优化绘制速度(关于这点,网上有很多贴子,说的很经典,在GOOGLE里搜)。
以上建议,希望有所帮助,祝你成功!
UltraBejing
2008-05-01
打赏
举报
回复
lz要干嘛?
knowledge_Is_Life
2008-04-30
打赏
举报
回复
不明LZ在说什么
aceattacker
2007-10-31
打赏
举报
回复
你这个就有点像传送一次数据(一个点)就要中断一次,有点像设备占用的IRQ。试试对DMA(直接内存访问)总线编程,这样就不用CPU去参与中断处理,数据采集后直接送内存。你就从内存中去取数据。
(理论上是这样的)关于具体的DMA编程,可以去汇编区问问。
arethe
2007-10-26
打赏
举报
回复
因为点是实时产生的,不能一次全部获得,由底层的模块周期性的向上级发送。所以我现在的做法是每来一个点就刷新一次。
你的意思是说,设置一个缓冲区,由底层模块和上层模块共用是吗?采集数据时,直接写入这个缓存区,在OpenGL中直接将这个缓冲区设为OpenGL的缓冲区,是这样吗?
但是我采到的数据不是象素信息,而是空间中点的坐标。我现在使用的画图方式是:
glDrawArray()
但是效果不好。
aceattacker
2007-10-26
打赏
举报
回复
这句我不是很明白“我试过每采一个点立即刷新的方法绘图”,不能一次采所有的点吗(没有一次读入所有数据的函数吗?)?
如果可以全屏采集,用一个指针指向这批像素的头地址,然后用memcpy的方式(或者一行一行拷贝)拷出再刷新。
采集数据时必有一个缓冲区(如摄像头),用指针指向这个缓冲区并刷新就行了啊!
OpenGL
ES: (5)
OpenGL
的基本概念、
OpenGL
ES 在屏幕产生图片的过程、
OpenGL
管线(pipeline)
OpenGL
的结构可以从逻辑上划分为下面 3 个部分:图元(Primitives)在
OpenGL
的世界里,我们只能画
点
、线、三角形这三种基本图形,而其它复杂的图形都可以通过三角形来组成。所以这里的图元指的就是这三种基础图形:
点
:
点
存在于三维空间,坐标用(x,y,z)表示。线:由两个三维空间中的
点
组成。三角形:由三个三维空间的
点
组成。缓冲区(Buffers)
OpenGL
中主要有 3 种 Buffer:光栅化(Rasterize) 在介绍光栅化之前,首先来补充
OpenGL
中的两个非常重要的概念:V
1.qml-创建第
一个
程序
1.qt quick和qml 在Qt 5中,Qt Quick被描述为QML类库,Qt Quick是QML的
一个
数据类型和功能的标准库,包含了可视化类型、交互类型、
动画
、模型和视图、粒子特效和渲染特效等。在QML应用
程序
中,可以通过
一个
简单的import语句来使用该模块提供的所有功能。而且Qt 5发布了新的QtQuick 2.x版本, 通过
OpenGL
(ES)2.0 抽象层,对绘图刷新方面大大提...
opengl
常见面试题
-渲染管线流程(腾讯,网易互娱,完美世界,米哈游···几乎都问过) 渲染管线通常被分为四个阶段:应用阶段,几何阶段,光栅化阶段,像素处理.阶段。接下来将介绍每个阶段的大概任务: (1) 应用阶段:应用阶段是指在CPU端进行处理的阶段,包括物理碰撞检测、物理模拟、
动画
计算等任务,对于3D游戏来说,游戏中包含大量的模型,3D模型中保存着模型的顶
点
坐标,法线,切线,颜色等数据,这些数据一般通过向量进行存储,CPU从模型中获取这些顶
点
信息数据,并将这些数据传送给GPU作为最开始的输入数据。然后将数据送到渲.
OpenGL
中骨骼
动画
是如何实现的
如果项目的规模和预算允许,可以考虑使用专业的
动画
中间件,如Havok Animation或Autodesk’s HumanIK,这些中间件通常提供了高度优化和功能丰富的
动画
解决方案。对于循环
动画
或者不经常变化的
动画
,可以预先计算好每一帧的骨骼矩阵,并将它们存储在纹理或其他缓冲区中,这样在运行时就可以直接使用这些预计算的矩阵,而不需要
实时
计算。全局变换矩阵是骨骼相对于模型原
点
的最终变换矩阵,它是骨骼的局部变换矩阵与其所有父骨骼的全局变换矩阵相乘的结果。例如,对于远处的角色,可能不需要详细的面部骨骼。
计算机图形学与
opengl
C++版 学习笔记 第5章 纹理贴图
计算机图形学与
opengl
C++版 学习笔记 第5章纹理贴图
游戏开发
8,303
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章