0x00 写在前面

最近在学习由 Patricio 编写的 The Book of Shaders,这是一本关于 Fragment Shaders(片段着色器)的入门指南。为了在一个相对熟悉的平台运行着色器代码,最后决定使用 VS Code 来配置开发环境。配置好的 VS Code 支持语法检测及代码提示,同时还可以实时预览修改的结果。

本文简单记录下安装和配置的过程。

0x01 安装 VS Code 及相关插件

第一步:安装 VS Code

第二步:在 VS Code 中安装相关的插件

安装插件的步骤:

  1. 点击右侧的 Extensions 按钮 (或使用快捷键 ctrl/cmd + shift + x)
  2. 在搜索框中输入插件名
  3. 点击插件旁的 Install 安装
  4. 有的插件需要重启 VS Code,则点击插件旁的 Reload Required

按照安装插件的步骤依次安装插件:

  1. Shader languages support for VS Code
  2. glsl-canvas
  3. GLSL Lint

0x02 语法检测

GLSL Lint 插件还依赖 OpenGL and OpenGL ES shader validator,点击链接即可前往,选择对应的 Release 版本下载。将下载好的压缩文件解压后,配置到系统环境变量中。因为不同的系统配置系统环境变量的方式也有所不同,这里不赘述了。

配置好环境变量后,重新打开 VS Code,新建一个文件来测试一下语法检测是否生效。这里故意删掉了 main 函数的右括号,可以看到第 7 行有红色的下划线提示,鼠标悬停在红线上会显示具体的错误信息。

同时也可以打开 Problems 界面来查看所有报错信息 (打开方式:View → Problems 或使用快捷键 ctrl/cmd + shift + m)。

0x03 代码提示

代码提示通过 VS Code 自带的 Snippets 功能来完成,在 VS Code 中依次点击 File → Preferences → User Snippets,在弹出的框中输入 glsl,点击第一个结果。VS Code 会帮我们创建一个名为 glsl.json 的文件,在该文件中我们可以自定义一些 glsl 的代码片段。

这里不妨直接使用 Lewis Lepton 写好的 配置文件。如果前面的链接访问速度较慢,也可以下载我上传到博客园中备份: glsl.json.zip

下载完成后,将其中的内容复制粘贴到刚刚创建好的 glsl.json 中并保存,就可以愉快地开始敲代码了。

0x04 Hello World

最后运行一段简单的 glsl 代码来检查上面的配置是否正确吧。

#ifdef GL_ES
precision mediump float;
#endif uniform vec2 u_resolution; void main() {
vec2 st = gl_FragCoord.xy/u_resolution;
gl_FragColor = vec4(st.x,st.y,0.0,1.0);
}

使用快捷键 ctrl/cmd + shift + p,输入并选择 Show glslCanvas 按下回车,应该就可以在右侧看到展示结果了。

0x05 其他说明

The Book of Shaders 使用 WebGL 运行环境,与普通的 GLSL 略有差异。一些细节可以前往 GlslCanvas 的项目主页进行查看。

参考资料:

Book of Shaders 00 - 使用 VS Code 编写 GLSL的更多相关文章

  1. [6278009]使用Visual Stuido Code 编写Markdown

    使用Visual Stuido Code 编写Markdown void main() { printf("Hello world!"); } void main() { Cons ...

  2. 31 Godoc: documenting Go code 编写良好的文档关于godoc

    Godoc: documenting Go code  编写良好的文档关于godoc 31 March 2011 The Go project takes documentation seriousl ...

  3. 在ubuntu下使用visual studio code编写python

    感觉有了visual studio code之后,不管编写什么语言的代码都可以,简单安装对应的语言插件即可. 这不轮到了最近比较热的python语言,蹭着AI的热度,python语言成为了工程师们又一 ...

  4. 如何使用VS Code编写Spring Boot (第二弹)

    本篇文章是续<如何使用VS Code编写Spring Boot> 之后,结合自己.net经验捣鼓的小demo,一个简单的CRUD,对于习惯了VS操作模式的.net人员非常方便,强大的智能提 ...

  5. vs code编写java

    不知不觉中vs code变得非常强大了,今天小编就分享一下vs code编写java语言.其实除了java语言,还支持很多语言. 首先看下vs code欢迎页面支持哪些语言: 好家伙,支持的东西还真不 ...

  6. CSharpGL(11)用C#直接编写GLSL程序

    CSharpGL(11)用C#直接编写GLSL程序 +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharp ...

  7. Rust初步(二):使用Visual Studio Code编写Rust程序(猜猜看游戏)

    我是照着下面这篇帮助文档,完成了第一个完整的Rust程序: 猜猜看 游戏 http://kaisery.gitbooks.io/rust-book-chinese/content/content/3. ...

  8. Visual Studio Code编写HTML

    第一步双击打开Visual Studio Code,我们发现什么也没有,但是有一个默认打开的编辑页面.我们先点击File->OpenFoldor 为什么先这么做呢,有两个原因,第一个原因假如你有 ...

  9. 使用Visual Studio Code编写和激活ABAP代码 (上)

    猪年春节后的第一篇,Jerry祝各位猪年大吉! 2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,在年初制定的小目标都 ...

随机推荐

  1. go语言之文件操作

    一: 相关的API 1func Create(name string) (file *File, err Error) 根据提供的文件名创建新的文件,返回一个文件对象,默认权限是0666 2 func ...

  2. 终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的

    一:背景 1. 讲故事 前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient, ...

  3. PHP使用FilesystemIterator迭代器遍历目录

    /**  * PHP高效遍历文件夹(大量文件不会卡死)  * @param string $path 目录路径  * @param integer $level 目录深度  */ function f ...

  4. h5跳转微信公众号关注页面

    最近在做h5项目,有个需求是如果用户没有关注公众号,需要引导用户跳转至微信公众号关注页面 制作一个链接,点击该链接跳转到公众号关注页面. 1.从公众平台登进入公众号 2.点击开发>>开发者 ...

  5. python实践项目1

    python #南昌理工学院人工智能学院实验室 WORKSHOP 实践项目 import time print('welcome to our WORKSHOP') print('.......... ...

  6. 转载:Java的三种取整办法

    转载地址:https://blog.csdn.net/maple_fix/article/details/78656152 方法一:向上取整Math.ceil();举例:Math.ceil(11.4) ...

  7. 20190930-02 Redis持久化方式一:RDB及修改RDB的默认持久化策略 000 032

  8. 20190916-01linux文件与目录结构 000 001

    1./bin 是Binary的缩写,这个目录存放着最经常使用的命令 2./sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序 3./home 存放普通用户的主目录,在 ...

  9. 关于h5游戏开发,你想了解的一切都在这儿!

    ​2020年,受疫情影响,线下产业红利褪去,线上迎来的新一轮的高峰.众多商家纷纷抓住了转型时机,开启了流量争夺战.H5游戏定制无疑是今年引流的大热门.如何开发一款有趣.有爆点.用户爱买单的好游戏呢? ...

  10. python基础一(安装、变量、循环、git)

    一.开发语言分类 系统的开发语言有java.c++.c#.python.ruby.php等等,开发语言可分为编译型语言和解释型语言. 编译型语言就是写好代码之后就把代码编译成二进制文件,运行的时候运行 ...