做gl demo谨慎打开面剔除功能,否则容易干扰测试,没有错的情况下什么都不显示

news/2024/11/18 3:33:49/

关于何为面剔除,很多博主已经介绍得很清晰了,就不重复介绍了(我懒):

OpenGL基础32:面剔除_Jaihk662的博客-CSDN博客

其实面剔除对于有效减少渲染时看不到的面消耗的算力很有帮助,但在程序还没做完之前打开可能会导致一些该显示的东西显示不出来

最近想做一个关于可以移动光源的光照模型,在以往的代码上随便复制组合一下打算搭建一个demo开始写相关代码,结果发现熟悉的三角形它没有显示出来……。

1、首先怀疑shader写得有问题。但没发现compile error。

2、怀疑是顶点设置有点问题,反复查引用过程,也没问题,顶点本身设定也没问题

3、再怀疑会不会是我的变换矩阵没写好?

然后我用最小系统法,把所有额外的东西去掉,甚至只是保留最简单的顶点和片元脚本:

#version 300 esin vec3 objectPosition; void main() {gl_Position = vec4(objectPosition, 1.0);
}
#version 300 es
precision highp float;
out vec4 fragColor;void main() {fragColor = vec4(0.0, 1.0, 1.0, 1.0);
}

这样基本上就等同于输入的顶点在没有任何变换的情况下,赋予这个三角形面每个一种藏青色(每个顶点都是同样的片元颜色)。

但居然还是什么都没显示,但是什么都没报错。

那基本脚本的问题也可以排除了。

那剩下的可能就是gl API调用方面的问题了。检查到最后,发现我粘贴的样本代码打开了:

GLES30.glEnable(GLES30.GL_CULL_FACE);

而我绘制顶点的顺序刚好就是它不会显示的那种,所以自然显示不出来了。关闭之后一切正常了。


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

相关文章

更深度了解getchar和putchar现象

目录 前言: 1.getchar和putchar 1.1基本使用 1.2一些特殊打印 1.3putchar打印空格 2.深度了解现象 前言: 经过学习,总结getchar()函数和putchar()函数在搭配使用while循环的时候,控制台窗口光标位置的出现位置的由来。 1.…

JavaScript【四】JavaScript中的函数

文章目录 🌟前言🌟什么是函数?🌟函数声明方式🌟 function关键字🌟 字面量定义(匿名函数)🌟 实例化构造函数 🌟函数调用方式🌟通过括号调用🌟自调用(IIFE)🌟通…

基于matlab分析卫星星座对通信链路的干扰

一、前言 此示例说明如何分析从中地球轨道 (MEO) 中的卫星星座到位于太平洋的地面站的下行链路上的干扰。干扰星座由低地球轨道(LEO)的40颗卫星组成。此示例确定下行链路闭合的时间、载波噪声加干扰比以及链路裕量。 此示例需要卫…

曲线平滑算法:三次Hermite曲线生成

目录 1.三次Hermite曲线的参数方程 2. 三次Hermite曲线的绘制 Hermite曲线是通过给定曲线的两个端点的位置矢量、以及两个端点处的切线矢量、来描述曲线的,如图1所示。这里先对Hermite曲线进行数学公式推导,然后讲述如何绘制Hermite曲线。(这…

高性能计算HPC照亮AIGC未来:PC集群+Stable Diffusion 打造极致游戏体验

角色设计 | PC集群 | 增强现实 游戏设计 | PC农场 | PC Farm 随着科技的不断进步,虚拟现实、增强现实等技术已经逐渐成为了游戏设计中不可或缺的一部分。而在这些技术的背后,角色设计、PC集群、GAMEAI等方面的不断发展也为游戏的体验提供了更加丰富的可…

海康相机通过MVS达不到标称最大帧率的解决办法

目录 1.相机参数设置1.1 取消相机帧率限制1.2 修改相机图像格式1.3 调整相机曝光时间1.4 检查相机数据包大小(网口相机特有参数)1.5 恢复相机默认参数1.6 相机 ADC 输出位深调整 2.系统环境设置2.1 网口相机设置2.2 USB 相机设置 1.相机参数设置 1.1 取…

IIC协议相关

一.IIC协议初识 IIC(集成电路总线),半双工同步通信方式 *特点 1.简单性和有效性 由于接口直接在组件之上,因此IIC总线占用的空间特别小,减少了电路板的空间和芯片管脚的数量,降低了互联成本,总线的长度可高达25英尺…

Unity打包WebGL: 导入Vue

Unity打包WebGL: 导入Vue 1. 介绍 1.1 任务 记录将Unity项目打包成WebGL,并集成到Vue项目中的过程。 1.2 环境 Unity:2021.3Vue: 2 2. Unity项目 2.1 UI界面 2.2 添加插件 构建WebGL项目需要添加一个.jslib文件,用于Unity脚本函数与JavaScript函数…