glsl算术运算符

Cha*_*les 7 opengl shader glsl

在glsl中的愚蠢问题,为什么这一行:

float x = 1 - gl_Color.x;
Run Code Online (Sandbox Code Playgroud)

给出:

(26): error: Could not implicitly convert operands to arithmetic operator
Run Code Online (Sandbox Code Playgroud)

Chr*_*odd 21

GLSL(在#version 120之前)不允许在整数和浮点之间进行隐式转换. 1是一个整数,gl_Color.x是一个浮点数,所以你得到一个错误.你需要

float x = 1.0 - gl_Color.x;
Run Code Online (Sandbox Code Playgroud)

代替