SharpGL

news/2024/12/22 9:51:42/

 

SharpGL知识:http://download.csdn.net/detail/chs007chs/7299689

 

可以从如下地址中下载到SharpGL,可用于vs2012.,具体网址:https://github.com/dwmkerr/sharpgl/releases

也可以从csdn中下载到vs2012及vs2010的扩展包

 

在创建一个SharpGL winform程序后,出现了一问题:Extension function glGenFramebuffersEXT not supported.
解决方法参考

主要是显卡的驱动不支持函数glGenFramebufferEXT,可以修改OpenGL control的属性'RenderContextProvider",将其从FBO(使用glGenFramebuffersEXT进行硬件加速)改变为‘DIBSection’(这个可以适应任何显卡)。

 

命名规则:

SharpGL的常量和OpenGL常量名称是一样的,并且是OpenGL类的常量成员。如

[csharp] view plaincopy

  1. // Two OpenGL constants  
  2. GL_TRIANGLES  
  3. GLU_TESS_COMBINE  

会被写为

[csharp] view plaincopy

  1. OpenGL.GL_TRIANGLES  
  2. OpenGL.GLU_TESS_COMBINE  

函数的名称和OpenGL中是一样的,只是‘“gl”前缀去除了,例如:

[csharp] view plaincopy

  1. // Set the line width and point size  
  2. glLineWidth(3.0f);  
  3. glPointSize(2.0f);  

可能会写作:

[csharp] view plaincopy

  1. // Get a reference to the OpenGL object  
  2. openGL gl  = openGLCtrl1.OpenGL;  
  3. gl.LineWidth(3.0f);  
  4. gl.PointSize(2.0f);  


另外,函数的参数类型后缀会去除,例如:

[csharp] view plaincopy

  1. // Output some vertices  
  2. glVertex3f(2.0f,3.0f,4.0f);  
  3. glVertex4f(2.0f,1.0f,10.0f,1.0f);  


会被写作

[csharp] view plaincopy

  1. gl.Vertex3(2.0f,3.0f,4.0f);  
  2. gl.Vertex4(2.0f,1.0f,10.0f,1.0f);  

 

OpenGL的基础知识

 推荐Nehe教程,非常适合入门,也可以从CSDNhttp://download.csdn.net/detail/chs007chs/7299689下载到教程,或者Nehe的网址。

这里推荐几个网址:

http://www.opengl.org

http://nehe.gamedev.net/

 

void glMatrixMode(GLenum  mode);

指定对哪个矩阵栈进行后续的矩阵操作,GL_MODEVIEW是对模型观矩阵,它也是初始值;GL_PROJECTION是对投影矩阵。

如果有一个三维点V,矩阵N、M、L,要进行N*M*L*V的矩阵操作(矩阵相乘满足结合律),那么它们在代码中出现的顺序也是自上而下的:

[csharp] view plaincopy

  1. glMatrixMode(GL_MODEVIEW);  
  2. glLoadIdenity();  
  3. glMultMatrixf(N);  
  4. glMultMatrixf(M);  
  5. glMultMatrixf(L);  
  6. glBegin(GL_POINTS);  
  7. glVertex3f(v);  
  8. glEnd();  


窗口变化事件唤醒的函数其实有程序启动时也会被执行一次,所以这个函数至少会被执行一次。

环境光、散射光、镜面光

  • 环境光(ambient light)是那些在环境中进行了充分的散射,无法分辨其方向的光,它似乎是来自所有的方向
  • 散射光(diffuse light)来自某个方向,当它撞击表面时,它会均匀地向所有方向发射。
  • 镜面光(specular light)来自一个特定的方向,并且倾向于从表面向某个特定的方向反射

 

最后欢迎大家访问我的个人网站: 1024s


http://www.ppmy.cn/news/300988.html

相关文章

【C++】 Lambda表达式详解

▒ 目录 ▒ 🛫 问题描述环境 1️⃣ 什么是Lambda表达式Lambda 表达式的各个部分 2️⃣ 优缺点优点缺点 3️⃣ 使用场景在线C工具STL算法库STL容器中需要传递比较函数(示例失败了)多线程示例 4️⃣ Lambda表达式与函数指针的比较5️⃣ 捕获列表…

中国电子学会2023年05月份青少年软件编程Python等级考试试卷一级真题(含答案)

2023-05 Python一级真题 分数:100 题数:37 测试时长:60min 一、单选题(共25题,共50分) 1. 可以对Python代码进行多行注释的是?(C ) A.# B." " C. D. 2. 下列可以作为Py…

【你真的会斗图嘛?】Python爬虫实战项目——你想要的图都可以爬到(附安装地址)

目录 一、安装知识(1)Python环境变量(2)Pycharm开发工具(3)requests模块1、安装下载好Pycharm之后,找到终端进行下载requests模块2、输入下载语法:3、此次项目还需用到正则&#xff…

手机电池电压

电池上标的3.7V是一个平均数,一般手机锂电池的电压都是标3.7V,实际上手机电池(以下均指普通锂电池)满电电压为4.2,电池用到3.4V以下就没多少电了,再低一点就保护了手机就自己关机了. 充电器上标的是空载电压,也就是没带上电池的时候的电压,带上电池以后它就和电池一个电压了,也…

一键修复手机电池_怎么恢复手机电池寿命(教你一键修复电池损耗)

对于手机电池,很多人会有这样的感觉,一般只要用到1年左右的时间,明显感觉电池续航时间变短了,甚至从原来的一天一充,变成了1天几充,还没怎么用,电量却又所剩无几。 于是,很多人想知道…

手机电池的更换标准/指标 最近小米手机换电池那些事

其实手机电池达到什么情况就要换了的说法众说纷纭,实际上电源/电池更换的唯一标准其实就是【内阻】。电池用久了不耐用,就是内阻变大的原因,内阻增大电压下降自然什么自动关机断电的事情就会频繁出现,尤其是大负载使用时更明显&am…

担心手机电池寿命,专家给出正确充电方式

本文转载自IT之家,IT之家 3 月 17 日消息 中国科学技术协会官方微信公众号 “科普中国”昨天发文为大家科普了正确的手机充电 “姿势”,并建议给手机充电时先用充电器插电源,然后插手机。 文章首先科普了名为 “电涌”的知识,电涌…

手机电池不耐用怎么办,一招叫你恢复如新

很久没有更新博客了,牛年第一篇文章,祝大家牛年牛气冲天!升职加薪不是梦!! 今天的篇博客不是用Java代码有关的技术博客,但是这篇文章的含金量非常高,花两分钟仔细阅读完,这几分钟的…