标签: monobjc

同时使用GL_TEXTURE_2D和GL_TEXTURE_3D

前言

我有一个测试应用程序,它提取以下内容:

在此输入图像描述

左三角形通过以下方式绘制:

GL.glBegin(GL.GL_TRIANGLES);
{
    for (int i = 0; i < 50; i++)
    {
        GL.glColor4d(rand.NextDouble(), rand.NextDouble(), rand.NextDouble(), rand.NextDouble());
        GL.glVertex2d(rand.NextDouble(), rand.NextDouble());
        GL.glColor4d(rand.NextDouble(), rand.NextDouble(), rand.NextDouble(), rand.NextDouble());
        GL.glVertex2d(rand.NextDouble(), rand.NextDouble());
        GL.glColor4d(rand.NextDouble(), rand.NextDouble(), rand.NextDouble(), rand.NextDouble());
        GL.glVertex2d(rand.NextDouble(), rand.NextDouble());
    }
}
GL.glEnd();
Run Code Online (Sandbox Code Playgroud)

右三角形绘制为:

GL.glBindTexture(GL.GL_TEXTURE_2D, texture);

GL.glBegin(GL.GL_QUADS);
{
    GL.glTexCoord2f(0, 1); GL.glVertex2f(0, 1);
    GL.glTexCoord2f(0, 0); GL.glVertex2f(0, 0);
    GL.glTexCoord2f(1, 0); GL.glVertex2f(1, 0);
    GL.glTexCoord2f(1, 1); GL.glVertex2f(1, 1);
}
GL.glEnd();
Run Code Online (Sandbox Code Playgroud)

纹理通过FBO渲染.

问题

我很难让GL_TEXTURE_2D和GL_TEXTURE_3D一起玩.一切都很好,直到我取消注释以下代码部分:

GL.glEnable(GL.GL_TEXTURE_2D);
// GL.glEnable(GL.GL_TEXTURE_3D);
Run Code Online (Sandbox Code Playgroud)

结果我得到以下图像(2D纹理停止工作):

没有

有没有办法让2D和3D纹理协同工作?我需要通过FBO将3D纹理渲染成2D纹理.有没有办法做到这一点?

完整的源代码

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Threading; …
Run Code Online (Sandbox Code Playgroud)

opengl monobjc opentk

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

标签 统计

monobjc ×1

opengl ×1

opentk ×1