小编Sat*_*own的帖子

用于旧游戏渲染的最佳OpenGL剔除方法?

嘿伙计们,我正在渲染旧游戏中的旧几何体.他们的客户有一些算法,让他们可以看到附近的区域,但我没有这种能力所以我正在考虑剔除不必要的多边形.目前,我正在渲染整个区域中的每个多边形,无论我是否能够看到它,无论它是否在视觉范围内.显然这是完全没有效率的.我的问题:

我应该使用什么类型的剔除.我知道我可以剔除不在平截头体中的多边形,这将有助于减轻一些负荷,但我可以说,选择不渲染距离相机一定距离的多边形吗?这个叫什么?我也在某些地区使用雾.同样的问题.我可以想出一种方法,我可以剔除雾后面的一切,我看不到的区域.

谢谢:这项工作的截图正在进行中.有些人可能会认出它:)另外,忽略叶子的丑陋颜色.我没有考虑到alpha遮罩.

图片:http://i.stack.imgur.com/duc2I.png

opengl 3d rendering culling

3
推荐指数
1
解决办法
1153
查看次数

C++ - 访问可执行文件中"已删除"的文件

我已经使用了许多程序,只需将文件拖放到可执行文件上即可使用程序功能.例如,如果有一个格式化文本文件的程序,只需将文本文件拖到可执行文件上就会使其运行并使用文本文件作为目标.

对于允许这样做的程序,主要功能是什么样的?

c++ windows file-io

3
推荐指数
1
解决办法
812
查看次数

在OpenGL中渲染网格多边形 - 非常慢

我最近从中间模式切换并有一个新的渲染过程.必须有一些我不理解的东西.我认为它与指数有关.

这是我的图:Region-> Mesh-> Polygon Array-> 3个顶点索引,它们引用顶点的主列表.

这是我的渲染代码:

// Render the mesh
void WLD::render(GLuint* textures, long curRegion, CFrustum cfrustum)
{

    int num = 0;

    // Set up rendering states
    glEnableClientState(GL_VERTEX_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);

    // Set up my indices
    GLuint indices[3];

    // Cycle through the PVS
    while(num < regions[curRegion].visibility.size())
    {
        int i = regions[curRegion].visibility[num];

        // Make sure the region is not "dead"
        if(!regions[i].dead && regions[i].meshptr != NULL)
        {
            // Check to see if the mesh is in the frustum
            if(cfrustum.BoxInFrustum(regions[i].meshptr->min[0], regions[i].meshptr->min[2], regions[i].meshptr->min[1], regions[i].meshptr->max[0], regions[i].meshptr->max[2], …
Run Code Online (Sandbox Code Playgroud)

c++ opengl performance render

3
推荐指数
1
解决办法
1495
查看次数

Xcode从我的Home文件夹而不是Resources - C++加载程序资源

这是我第一次使用Xcode,这令人震惊,这个IDE是多么完全不直观.我听说它过去更好,我真的希望它是.

我的问题是我的程序加载的资源,数据文件和.ini文件,它会自动在我的Home文件夹中搜索这些文件.我想要它在.app的Resource文件夹中搜索这些文件.我使用的是C++,我发现的所有示例都是针对Objective-C的.

有关如何解决此问题的任何想法?

c++ resources xcode

3
推荐指数
1
解决办法
946
查看次数

模拟文件指针C++?

我正在尝试从存档加载位图.我在位图类中使用了一个指向文件名的字符指针,然后在它位于同一目录中时加载它.位图加载类经过了很好的测试,我不想太乱用它.问题是它使用文件指针加载并执行其所有文件操作.有没有办法模拟文件指针,实际上是从内存中的块读取?

对不起,如果这是一个奇怪的问题.

c++ pointers file bitmap

2
推荐指数
2
解决办法
913
查看次数

从原始数据生成BSP树

我知道如何利用像Quake这样的旧3D级别的预构建BSP树,甚至编写了一个级别渲染器.现在,我正在进行下一步实际构建BSP树的步骤.我知道它背后的过程,但我想知道是否有人有任何建议或指向教程的链接.

c++ bsp-tree

2
推荐指数
1
解决办法
3113
查看次数

渲染场景后让CPU休息

我已经读过,提供一个3D程序是一个好主意,其中渲染涉及渲染之间的休息.这是真的?这会降低CPU负载还是不相关?

如果是这样,你推荐什么方法?此外,这是否与帧速率上限有关,即上限为60 fps,如果不是时候渲染另一帧,请休息并等待,直到我们需要渲染另一帧以达到60fps标记.

我正在使用OpenGL和C++.

c++ opengl render cpu-usage

2
推荐指数
1
解决办法
395
查看次数

获取刚刚推入vector C++的元素的位置

我很好奇如何推回矢量的工作原理.我想要一种方法来推回一个元素,然后能够将它在矢量中的位置添加到作为一种地图类型的双数组中.

像这样的东西:

// Create a bomb
Bomb b;
b.currentTime = SDL_GetTicks();
b.explodeTime = SDL_GetTicks() + 3000;
b.owner = player;
b.power = 2;    
b.x = x;
b.y = y;

bombVec.push_back(b);

bombs[y][x] = THIS_IS_WHAT_I_WANT;
Run Code Online (Sandbox Code Playgroud)

这样,当我爆炸炸弹时,我可以检查地图,然后在矢量中有一个ID来处理.每个非炸弹广场都有一个-1.还有,好奇.想象一下,我在矢量中有3个元素.我删除第二个,然后添加另一个.新元素是否与删除的元素位于同一位置?

谢谢!

c++ vector

2
推荐指数
1
解决办法
2749
查看次数

数学 - 困难的Pong AI

我正在为我的Pong克隆编写一些困难,我正在编写以熟悉SFML和Xcode.对于最难的困难,我想创建一个AI级别,计算机可以立即知道球的位置.所以,如果我有xVelocity和yVelocity,我可以有效地获得斜率.问题是,每次球击中顶部或底部时,yVelocity都会反转.所以基本上,我有一个代数斜率问题,每次击中墙壁时都会出现相反的问题.

现在,我的屏幕高度为600像素,顶部和底部的命中检测为5像素,空间为590像素.

我的问题:是否存在包含所有这些因素的公式.比如说,球在x = 30和y = 240时被击中,斜率为1.45,我想得到当x = 770时它将击中的y值.

如果我可以简化这个,请告诉我.再一次,我知道如何通过计算4次如果球反弹4次来解决这个问题,但我想知道是否有办法在边界处进行y速度切换.

谢谢!

math algebra

2
推荐指数
1
解决办法
1234
查看次数

OpenGL多边形渲染顺序

正如您所看到的:http://i.stack.imgur.com/ztM0v.png,某些多边形只是呈现在其他多边形上.有没有人有任何建议或相关阅读以正确的顺序呈现这些,以便它们不重叠?

c++ opengl render polygon

0
推荐指数
1
解决办法
1498
查看次数

UnsatisfiedLinkError是什么意思?

我已经看到了很多具体的问题和对此消息的变体的答案,所有这些仅适用于该特定情况.我很好奇当抛出UnsatisfiedLinkError时的一般解决方案.这是什么意思?什么不找?.java文件?我错过了某处链接吗?我得到的那个在初始化过程中被抛出.

java eclipse

0
推荐指数
1
解决办法
363
查看次数