多重采样 一种方法的应用 全屏抗混 (FSAA)在3D应用程序。我需要使用多重采样在我的照片的程序,这是目前嵌入 个函数库和二进制文 GUI。有没有办法做到这一点?请回应只有如果你知道的详细步骤来实现这一点。

我知道能够使多重采样使用 WGL (Win32扩展到照片).然而,由于我加载的程序不是写在MFC(并且我希望代码是多平台便携式),那不是一个选项我。

有帮助吗?

解决方案

我终于有多重采样工作与我的个函数库和二进制文载程序。这是一个有点凌乱的权利,但如下:

个函数库和二进制文 没有 多重采样 支持他们 稳定稿 现在(最新版本在这个时候是 2.8.8).但是,它可作为一个补丁和也通过他们的日常快照。(后者是令人鼓舞,因为它意味着修补程序已经接受,并应该出现在以后的稳定稿,如果没有问题。)

因此,有2个选择:

  1. 下载并建立从他们的 每日快照.

  2. 得到的 补丁 为您工作的个函数库和二进制文安装。

我找到的第2个选项是小麻烦,因为我不想打扰我工作的安装尽可能多的。如果你不知道如何贴在窗户,看到 .

至少,对于Windows,修补程序将修改如下文件:

$(WX_WIDGETS_ROOT)/include/wx/glcanvas.h
$(WX_WIDGETS_ROOT)/include/wx/msw/glcanvas.h
$(WX_WIDGETS_ROOT)/src/msw/glcanvas.cpp

后修补 重新编译 这个函数库和二进制文库。

为使多重采样在你的个函数库和二进制文载的程序,小的改动代码是必需的。

一个属性,列出需要传递的 wxGLCanvas 构造:

int attribList[] = {WX_GL_RGBA,
                    WX_GL_DOUBLEBUFFER,
                    WX_GL_SAMPLE_BUFFERS, GL_TRUE, // Multi-sampling
                    WX_GL_DEPTH_SIZE, 16,
                    0, 0};

如果你已经使用的一个属性清单,然后添加符合 GL_SAMPLE_BUFFERS, GL_TRUE 给它。还有,添加这一属性列表中的定义,以你的代码。

然后修改wxGLCanvas构造采取这种属性清单作为一个参数:

myGLFrame::myGLFrame    // Derived from wxGLCanvas
(
    wxWindow *parent,
    wxWindowID id,
    const wxPoint& pos,
    const wxSize& size,
    long style,
    const wxString& name
)
: wxGLCanvas(parent, (wxGLCanvas*) NULL, id, pos, size, style, name, attribList)
{
    // ...
}

后wxGLCanvas元创建的,多重采样是通过默认。对禁用或使它在将使用载有关呼吁:

glEnable(GL_MULTISAMPLE);
glDisable(GL_MULTISAMPLE);

多重采样应该现在的工作与个函数库和二进制文载程序。我们希望,它应该支持在稳定释放的一个函数库和二进制文很快,使得这种信息无关紧要:-)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top