【问题标题】:Does SFML support transparency?SFML 是否支持透明度?
【发布时间】:2013-05-24 20:45:06
【问题描述】:

您好,我正在尝试使用 OpenGL / glut 绘制半透明球体;

我认为最简单的事情是发布代码:这是我目前拥有的;

glutInit(&argc, argv);

sf::ContextSettings settings;
settings.depthBits = 32;
settings.stencilBits = 0;
settings.antialiasingLevel = 0;

sf::Window window(sf::VideoMode(800, 600), "insert title", sf::Style::Default, settings);
window.setVerticalSyncEnabled(true);


glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glClearColor(0.0,0.0,0.0,0.0);


bool running = true;
while(running)
{
    sf::Event e;
    while(window.pollEvent(e))
    {
        if(e.type == sf::Event::Closed)
        {
            running = false;
        }

        if(e.type == sf::Event::Resized)
        {
            glViewport(0, 0, e.size.width, e.size.height);

            glMatrixMode(GL_PROJECTION);

            glLoadIdentity();
            gluPerspective(45.0, (double)e.size.width / (double)e.size.height, 0.1, 2000.0);

            gluLookAt(0,0,0, 1,0,0, 0,1,0);

            glMatrixMode(GL_MODELVIEW);
        }
    }

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

    glColor4d(1.0, 0.0, 0.0, 0.5);

    glutWireSphere(0.5, 4, 4);

    window.display();
}

在 optirun 和没有 optirun 的情况下运行这个东西......虽然没有透明度!

我在某处读到上下文必须有一个 alpha 缓冲区... SFML 支持这个吗?

【问题讨论】:

  • 此代码具有复制粘贴编码的所有特征。请不要那样做。
  • 这里没有复制粘贴。
  • 你在使用 GLUT xor SFML 吗?
  • GLUT 绘制球体,SFML 渲染。

标签: opengl transparency alpha sfml


【解决方案1】:

你的代码很混乱。

FreeGLUT 和 SFML 在 OpenGL 方面做同样的事情:它们使用 OpenGL 上下文创建窗口。您不应该在同一个应用程序中同时使用它们。

另外,在创建窗口之前,您不能调用 OpenGL 函数。这些函数会影响当前上下文。这些函数对您使用 SFML 创建的新上下文没有影响。您的代码根本没有意义。

【讨论】:

  • @EdwardBird:您仍在调用 GLUT 函数(因此将其包含在您的 SFML 项目中)。不要混合 GLUT 和 SFML。
  • 我还要怎么画一个球体?
  • GLU 还具有绘制球体等简单形状的功能:opengl.org/sdk/docs/man2/xhtml/gluSphere.xml
  • @EdwardBird:通过绘制一系列近似球体形状的三角形。 GLUT 不会做任何你自己无法做到的事情。
  • @NicolBolas 哈哈哈哈哈哈,“画一系列三角形”何必过不去?!提供一些绘制球体的来源,我会印象深刻。
猜你喜欢
  • 2022-01-16
  • 2020-10-04
  • 2023-03-11
  • 1970-01-01
  • 2012-02-27
  • 2011-06-08
  • 1970-01-01
  • 2010-11-25
  • 2011-03-17
相关资源
最近更新 更多