双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

基于tao框架的c# opengl开发遇到一个简单的问题

rao3281 rao3281 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
想使用Devil来载入纹理,编写了一个实验代码
绘制代码为
private void Form1_Load(object sender, EventArgs e)
{
simpleOpenGlControl1.InitializeContexts();
simpleOpenGlControl1.SwapBuffers();

Il.ilInit();
Ilu.iluInit();
Ilut.ilutInit();
Ilut.ilutRenderer(Ilut.ILUT_OPENGL);

simpleOpenGlControl1.SizeChanged += new EventHandler(simpleOpenGlControl1_SizeChanged);



// _textureManager.LoadTexture("map", "ccd-bkg.jpg");
// Texture texture = _textureManager.Get("map");
//Gl.glEnable(Gl.GL_TEXTURE_2D);
//Gl.glBindTexture(Gl.GL_TEXTURE_2D, texture.Id);
PlotGL();
}

private void PlotGL()
{
Gl.glColor4f(1.0f, 1.0f, 1.0f, 0.1f);
Gl.glBegin(Gl.GL_QUADS);
Gl.glVertex3f(0, 0, 0);
Gl.glVertex3f(0.2f, 0, 0);
Gl.glVertex3f(0.8f, 0.6f, 0);
Gl.glVertex3f(0, 1, 0);
Gl.glEnd();
}
如果红色那行代码注释掉,绘制没有问题,都是白色的四边形
但一旦载入纹理后,四边形变成褐色了,不知为什么
public void LoadTexture(string textureId, string path)
{
int devilId = 0;
Il.ilGenImages(1, out devilId);
Il.ilBindImage(devilId); // set as the active texture.

if (!Il.ilLoadImage(path))
{
System.Diagnostics.Debug.Assert(false,
"Could not open file, [" + path + "].");
}

Ilu.iluFlipImage();

int width = Il.ilGetInteger(Il.IL_IMAGE_WIDTH);
int height = Il.ilGetInteger(Il.IL_IMAGE_HEIGHT);
int openGLId = Ilut.ilutGLBindTexImage();

System.Diagnostics.Debug.Assert(openGLId != 0);
Il.ilDeleteImages(1, ref devilId);

_textureDatabase.Add(textureId, new Texture(openGLId, width, height));
}

...全文

相关推荐

Tao OpenGL Arcball 算法

tao opengl 写的Arcball算法,能够控制图像的旋转、平移、缩放。希望对大家有所帮助。

钢铁男儿

基于C#的OpenGL图形编程实战:Tao库封装完整项目

简介:OpenGL是用于开发2D/3D图形应用的跨平台API,而Tao库为.NET开发者提供了对OpenGL、OpenAL、OpenCL等原生库的高效封装,实现C#与底层图形接口的无缝交互。本完整C#项目已集成Tao库,支持在Visual Studio 2010中直接编译运行,省去环境配置成本,适合初学者学习和快速原型开发。通过该项目,开发者可掌握OpenGL核心概念、图形管线流程、资源管理机制以及C#环境下OpenGL上下文的创建与渲染技术,全面提升图形编程实践能力。

一曲歌长安

利用Tao和C#实现OpenGL 3D导航的完整指南

Tao库是一个开源的库,为.NET环境提供了一个简化OpenGL使用的接口。要开始使用Tao库,首先需要从其官方网站或源代码管理库中获取资源。通常,Tao库会与一些模板项目一起提供,这些项目已经配置好了所有必要的设置,可以直接用于开发。项目中包含了Tao.OpenGL.dll、Tao.FreeGLUT.dll等核心库,以及其他与图形、窗口和输入相关的扩展库。这些资源对于快速启动和运行OpenGL项目至关重要。

凌莫凡

基于Tao框架下的OpenGL开发程序

该程序是在C#环境下进行的三维展示的开发.适合初学者.包含了三维地表的生成,移动,旋转,透视,坐标点变换,模式变换等内容.请下载后重新加载tao.OpenGl,Tao.Winform等组件文件内包含

zhangxuande_1234

基于Tao框架的C#+OpenGL

利用C#+OpenGL绘制基础的矩形图

qq_36388750
评论 5
收藏 已收藏
分享
返回顶部
rao3281
C# 111,129 成员 642,540 内容