GLSL Shader基础
- Shader(把输入转化为输出,运行在GPU上):首先要声明版本,有各自的入口点main()
- 顶点数据上限:16个包含4分量:16 * 4 = 64个分量
- 向量:容器vec。使用
.x
、.y
、.z
和.w,
颜色使用rgba,
纹理坐标使用stpq,
- 输入和输出:
in
和out
- uniform是全局的(Global)。:全局:生命周期,唯一性,只存在一份,一直保存数据,直到更新。
- uniform变量为空的,先启用glUseProgram,glGetUniformLocation查询uniform 的位置值,glUniform4f传递我们的数据4个float
抽象(renderer,shader,unifrom)
- 导入glm库的include
- ❌:分解shader文件时,找不到路径,触发异常处理
- 解:Windows 系统中,
\
是默认的目录分隔符,而/
通常用作命令行参数的分隔符,使用\\
被视为普通字符,那么当传入绝对路径,应写为\\
配置premake5.lua
premake5.exe vs2022(生成2022sln的window工程)
- 下载premake-5.0.0-beta2-windows.zip,必须也拷贝LICENSE.txt许可证才行
- premake:编写简单的Lua脚本来描述项目的配置和构建等选项。Premake.exe 会根据这些脚本生成特定平台(如 Windows、Linux、Mac 等)的工程文件(例如sln)和构建脚本
-
Tokens:根据不同的平台和配置自动调整自身,和vs中的属性配置差不多,是一个意思。wks工作区,prj项目,cfg项目配置,比如%{cfg.buildcfg}(当前的构建名称(debug||release……)
-
..返回上级目录,"cfg.buildtarget" (dll)or "cfg.linktarget"(lib)还有一些字段。
-
{COPY}复制命令
-
运行时库(非用户自己写的库或其他第三方库):MT多线程静态库、MTd多线程静态调试库、MD多线程动态库、MDd多线程动态调试库
-
,git clone,可以克隆原来的版本到本地,有本地.git仓库,单纯下载zip并不可以。
-
❌:错误,出现这种情况,根据output的错误信息,得出是运行时库不匹配的问题,更改为MDT。
-
对于无法找到glfw3.lib,需要添加lib的库目录,在lua中libdirs。