我这里有一个非常简单的着色器:
#version 460
layout (location = 0) in vec3 inPos;
layout (location = 0) out vec3 outPos;
void main() {
gl_Position = vec4(inPos.x, inPos.y, inPos.z, 1.0);
outPos = inPos;
}
并使用以下命令编译着色器:
glslangValidator -V -G -o triangle.vert.spv triangle.vert
编译器转出了3个错误:
error : #version: ES shaders for SPIR-V require version 310 or higher
error : Source\Shaders\triangle.vert:1: '€' : unexpected token
error : Source\Shaders\triangle.vert:1: '' : compilation terminated
看来编译器在读取代码的第一行时遇到了困难。我非常肯定我没有在这个中包含一个欧元符号,语法应该是正确的。
我该怎么解决这个问题?
发布于 2022-12-26 08:11:40
事实证明,这个问题确实是由文件- BOM (https://en.wikipedia.org/wiki/Byte_订单_标记)的最初字节引起的。
我正在使用Jetbrains,对我来说,修复是File Encoding -> Remove BOM
。
https://gamedev.stackexchange.com/questions/203835
复制相似问题