首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenGLES-04 绘制带颜色的立方体

前面几篇文章都只是绘制了平面图形,接下来我们开始绘制一个真正的3D立方体图形。代码在前一篇文章基础上修改。...绘制立方体之前,我们需要知道这个立方体的各个顶点坐标(找不到图,自己画的,请将就将就): ?...事实上,我们代码画的确实是一个立方体,只是我们观察的角度是从正方体正面看过去的,立体的部分全被前面的面挡住了,只要我们旋转一下立方体,就能看到立体的部分了,不过这个问题会在下一篇讲到,这里先绘制立方体,...)在着色器程序中的槽位; 参数 size :指定每一种数据的组成大小,比如顶点由 x, y, z 3个组成部分,纹理由 u, v 2个组成部分; 参数 type :表示每一个组成部分的数据格式; 参数...颜色运行结果.png 结果显示了我们立方体正面的颜色,顶点用到了(0,1,2,3),所以颜色是红黄蓝白的线性插值。下一篇文章,我们将对这个立方体进行3D变换以看清它确实是个立方体。

1.6K90

OpenGLES-04 绘制带颜色的立方体

注:04被简书吞了,联系很久也没反应,为了大家能正常学习下去,特此重发一遍 前面几篇文章都只是绘制了平面图形,接下来我们开始绘制一个真正的3D立方体图形。代码在前一篇文章基础上修改。...绘制立方体之前,我们需要知道这个立方体的各个顶点坐标(找不到图,自己画的,请将就将就): ?...事实上,我们代码画的确实是一个立方体,只是我们观察的角度是从正方体正面看过去的,立体的部分全被前面的面挡住了,只要我们旋转一下立方体,就能看到立体的部分了,不过这个问题会在下一篇讲到,这里先绘制立方体,...)在着色器程序中的槽位; 参数 size :指定每一种数据的组成大小,比如顶点由 x, y, z 3个组成部分,纹理由 u, v 2个组成部分; 参数 type :表示每一个组成部分的数据格式; 参数...颜色运行结果.png 结果显示了我们立方体正面的颜色,顶点用到了(0,1,2,3),所以颜色是红黄蓝白的线性插值。下一篇文章,我们将对这个立方体进行3D变换以看清它确实是个立方体。

67020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Unity3D学习笔记2——绘制一个带纹理的面

    概述 上一篇文章《Unity3D学习笔记1——绘制一个三角形》中介绍了Unity3D的HelloWorld——绘制一个简单的三角形。不过这个三角形太简单了,连材质都没有。...那么这里就将三角形扩展为一个矩形的面,并且为这个面贴上纹理。 2. 详论 2.1. 网格(Mesh) 前面说到网格是渲染物体的骨架,因此还是先要把渲染物体的架子搭好。...uv坐标是用来计算纹理坐标的,也就是当物体贴上纹理之后的纹理坐标位置;法向量是用来参与光照计算的,如果缺少法向量,很多材质的效果不正确。...创建材质 材质和纹理(图片)在Unity3D中被认为是一种资源,要加载他们需要特定的办法。一种比较简单的办法是使用Resources.Load。...光照 点击Play,会发现虽然显示了一个带纹理的面,但是面的颜色显得很暗: ? 这是因为光照的位置不对,材质缺少对光照的影响。

    1.1K40

    用OpenGL绘制地球

    本想用自动纹理坐标生成做的,可是红宝书上说得一点都不明白。网上有个人的课程设计是自己画的球,就是一个个四边形的拼个球,然后再给四边形贴图。这样太麻烦了!...    glBindTexture(GL_TEXTURE_2D, texture[filter]);//绑定纹理     gluSphere(quadObj,1,20,20);                    ...当调用二次描述和控制函数是指向这个对象。如果返回值为0则表明没有足够的空间分配给该对象。   ·gluQuadricDrawStyle函数指定二次对象的绘制方式。...本例中圆柱体的绘制方式为GLU_FILL。含义为用多边形原绘制本二次对象,多边形的绘制方式为逆时针。球体的绘制方式为GL_SILHOUETTE,即除边界外用一系列线来绘制二次对象。...·void gluSphere(GLUquadricObj *qobj,GLdouble radius,Glint slices,Glint stacks)绘制一个球形。

    2.9K101

    实验7 3D机器人

    1.实验目的: (1) 熟悉视点观察函数的设置和使用。 (2) 熟悉3D图形变换的设置和使用。 (3) 进一步熟悉基本3D图元的绘制。 (4) 体验透视投影和正交投影的不同效果。...①立方体绘制函数,其功能为绘制一个边长为size的线框或实体立方体,立方体的中心位于原点。...的小球 ③正八面体绘制函数,其功能是绘制一个线框的或是新的正八面体,其中心位于原点,半径为1。...void gluWireOctahedron(void) //线框模型 void gluSolidOctahedron(void) //实体模型 ④正十二面体绘制函数,其功能是绘制一个线框的或实心的正十二面体...void gluWireDodehedron(void) //线框模型 void gluSolidDodehedron(void) //实体模型 ⑤正四面体绘制函数,其功能是绘制一个线框的或实心的正四面体

    1.4K40

    你知道怎么用Pandas绘制带交互的可视化图表吗?

    大家好,我是才哥。 之前咱们介绍过Pandas可视化图表的绘制《『数据可视化』一文掌握Pandas可视化图表》,不过它是依托于matplotlib,因此无法进行交互。...,它们是: plot_data_points:添加绘制线上的数据点 plot_data_points_size:设置数据点的大小 标记:定义点类型*(默认值:circle)*,可能的值有:“circle...(上图中我们绘制的是2017年的数据),则无需对y赋值,结果会嵌套显示在一个图中: df_pie.plot_bokeh.pie( x="Partei", colormap=["blue"...直方图 在绘制直方图时,有不少参数可供选择: bins:确定用于直方图的 bin,如果 bins 是 int,则它定义给定范围内的等宽 bin 数量(默认为 10),如果 bins 是一个序列,它定义了...默认值:False kwargs **:bokeh.plotting.figure.patch 的可选关键字参数 # 我们用 之前饼图里的数据来绘制 df_energy = df_pie df_energy.plot_bokeh.area

    3.8K30

    OpenGL API 简介

    例如: glVertex3fv()表示了该函数属于 gl 库,参数是三个 float 型参数指针。我们用glVertex*()来表示这一类函数。...二次曲面绘制工具: 主要有绘制球面、锥面、柱面、圆环面gluNewQuadric()、gluSphere()、gluCylinder()、gluDisk()、gluPartialDisk()、gluDeleteQuadric...三维物体绘制函数: 包括了两种形式网状体和实心体,如绘制立方体auxWireCube()、auxSolidCube()。...gluQuadricNormals 定义二次曲面所用的法向的种类 gluQuadricOrientation 定义二次曲面内部或外部方向 gluQuadricTexture 定义是否带二次其面做纹理帖图...gluScaleImage 将图象变换为任意尺寸 gluSphere 绘制一个球体 gluTessBeginContour,gluTessEndContour 划定一个边界描述 gluTessBeginPolygon

    2.3K41

    Direct3D学习(七):DirectX下天空盒子的实现

    想想CS之类的天空,是不是有点印象? 原理 现在的游戏里可能半球用的较多吧?不过原理上一样,我们这里以立方体为例。最简单的方法,莫过于画6个正方形,分别为它们贴上纹理。...住下看吧(欠扁) 立方体环境贴图(Cubic Environment Mapping),也叫立方体贴图,就是一个纹理包含了包围物体场景的图像数据, 就像一个物体在立方体中心一样.每个面包含横竖各90度的视野...右图呢,就是立方体贴图的UV坐标纹理的等价形式,说到底,就是把6张图片拼到一块儿去了而已。不过一般情况下,立方体贴图是映射到一个曲面上,而且,它跟本不使用UV坐标。...制作立方体贴图 看起来立方体贴图挺麻烦的,其实DirectX自己的纹理格式.dds就支持Cubemap Texture。创建也不需要什么复杂的工具,用SDK带的DxTex.exe就可。 1....保存 绘制天空盒子 既然有了立方体贴图,那么是不是画个立方体把图贴上就行了?道理是不错,只不过还有更简单的办法:在面前画个矩形,你往哪看,就画哪个角度的天空!(太贱了,这样的鬼点子是谁想的?)

    1.2K50

    关于c#winform用sharpGL(OpenGL)绘制不出图形,绘制窗口是个黑框的坑

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11790309.html 在c++的opengl中可能是因为是最基本的库,很多东西都把你做好了...转到c#下用大牛们对opengl的支持库,比如sharpGL,使用起来需要非常的严谨 就比如: gl.Color(0.0f, 0.0f, 1.0f);这个设置颜色的代码 在c++下不管是0.0f也好还是...0也好都可以,而在c#下sharpGL没有写0.0f的这种格式 图像就完全绘制不出来。...还有一个点就是在winfrom下 绘制的图形默认是把你们整个窗口都覆盖的 你这个窗口的视距就是贴着这个图形的 如果你没有加这句: gl.Translate(0.0f, 0.0f, -6.0f);将图形往后移动几个单位...,你在winfrom的界面可能会全是黑的 让你觉得你没有绘制出图形出来。。。。

    1.6K10

    OpenGL开发库的详细介绍zz

    例如glVertex3fv()表示了该函数属于gl库,参数是三个float型参数指针。我们用glVertex*()来表示这一类函数。...从图1可以看出,gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大。...纹理映射函数,主要有一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、 设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*()...二次曲面绘制工具,主要有绘制球面、锥面、柱面、圆环面gluNewQuadric()、gluSphere()、gluCylinder()、gluDisk()、gluPartialDisk()、gluDeleteQuadric...三维物体绘制函数。包括了两种形式网状体和实心体,如绘制立方体auxWireCube()和 auxSolidCube()。

    1.9K30

    OpenGLES进阶教程7-天空盒效果

    概念准备 天空盒特效:OpenGL ES提供了一个立方体贴图(cube mapping)的专门用于产生天空盒效果的纹理贴图模式。...举例:一个人,站在立方体的中间,上下左右前后看到的都是立方体的图片。 效果展示 为节省流量,gif比较模糊,清晰效果可以看demo。 ?...2、纹理坐标到纹素推导(核心) 纹理坐标(s, t, r)被当作方向向量看待,每个纹理单元都表示从原点所看到的纹理立方体上的图像。...经过很多天尝试后,已经可以确定的是,是飞机的绘制影响了天空盒的位置,角度的旋转只是隐藏了bug。 开始寻找非OpenGL ES的文章,看看OpenGL的天空盒实现,同时查看苹果官方的文档。...Tips 天空盒还有两部分内容:一个是切图,这个比较简单,用CoreGraphics即可;另一个是用Shader来实现天空盒,而非GLKSkyboxEffect,这部分加进来篇幅就过长了。

    1.4K60

    写给 python 程序员的 OpenGL 教程

    function glutInit, check for bool(glutInit) before calling 原来,pip 默认安装的是32位版本的pyopengl,而我的操作系统是64位的。...我是这样安装的: pip install PyOpenGL-3.1.3b2-cp37-cp37m-win_amd64.whl 3 OpenGL 库及函数简介 我第一次接触 OpenGL 的 GL / GLU...: 主要有绘制球面、锥面、柱面、圆环面gluNewQuadric()、gluSphere()、gluCylinder()、gluDisk()、gluPartialDisk()、gluDeleteQuadric...如果尝试运行这段代码出错的话,我猜应该是 pyopengl 安装出现了问题,建议返回到前面重读 pyopengl 的安装。...尽管 VBO 是显卡的扩展,其实没有用到GPU运算,也就是说 VBO 不用写着色语言,直接用opengl函数就可以调用,主要目的是用于加快渲染的速。

    3.3K30

    万字长文详解如何用Python玩转OpenGL | CSDN 博文精选

    本文作者以 Python 语法为例,用两万字详解 OpenGL 的理论知识、用法与实际操作,干货满满,一起来看看吧。...function glutInit, check for bool(glutInit) before calling 原来,pip 默认安装的是32位版本的PyOpenGL,而我的操作系统是64位的。...: 主要有绘制球面、锥面、柱面、圆环面gluNewQuadric()、gluSphere()、gluCylinder()、gluDisk()、gluPartialDisk()、gluDeleteQuadric...如果尝试运行这段代码出错的话,我猜应该是 PyOpenGL 安装出现了问题,建议返回到前面重读 PyOpenGL 的安装。 ?...尽管 VBO 是显卡的扩展,其实没有用到GPU运算,也就是说 VBO 不用写着色语言,直接用opengl函数就可以调用,主要目的是用于加快渲染的速。

    9.5K22
    领券