bgfx入门练习3——编译自定义Shader

马个鸡,总算编译过了自定义Shader,在此感谢自己,感谢自己,以及感谢自己。没有自己的努力,我是不可能解决这个问题的,自己真是太叼了。妈的智障!!!

管方那屎一样的make工具根本没用,反正我是折腾半天死活用不了,以及google都搜不到半点教程和相关解决方案让我差点放弃。

今早起来咽不下这口气,找出编译过的LumixEngine参考了一下,主要的问题就是不知道这个shaderc到底是怎么用的,缺少一个靠谱的参考。

根据这里提到,编译有include不到某某文件的问题,要包含bgfx_shader.sh,也就是要把bgfx/src目录加入到参数中

https://github.com/bkaradzic/bgfx/issues/1148

我目前用的成功的参数,例子测试的是bgfx\examples\01-cubes目录,图如下,建立dx11和glsl目录

ogl.bat

shaderc -f vs_cubes.sc -o .\glsl\vs_cubes.bin --depends -i ..\..\src --varyingdef varying.def.sc --platform linux -p 120 --type vertex -O3
shaderc -f fs_cubes.sc -o .\glsl\fs_cubes.bin --depends -i ..\..\src --varyingdef varying.def.sc --platform linux -p 120 --type fragment -O3

编译shaderc项目,会生成到

bgfx\.build\win32_vs2015\bin\shadercRelease.exe

改名为shaderc.exe,或其他你自己喜欢的,我用的shaderc,放到这个01-cubes项目下。

拉个命令提示符快捷方式过来,点击就在本目录打开。然后运行ogl.bat就行了。

参数上参考的

bgfx\scripts\shader.mk

这个文件写的

分别是

-f glsl脚本文本

-o 输出文件名

-i 包含bgfx_shader.sh的路径

--varyingdef varying.def.sc文件

--platform shader参数,这个平台不管你是win下还是linux还是什么,只要是glsl shader,就写linux,这玩意并不区分window glsl shader还是linux glsl shader,这是参考shader.mk写的

格式分3种,VS,FS,CS,对应顶点,像素,计算着色器,前缀vs,fs,cs似乎是必需的,没验证,但是昨晚搜的时候好像哪提到过。

于是运行就能编译glsl的shader了。

dx11.bat

shaderc -f vs_cubes.sc -o .\dx11\vs_cubes.bin --depends -i ..\..\src --varyingdef varying.def.sc --platform windows -p vs_4_0 -O 3 --type vertex -O3
shaderc -f fs_cubes.sc -o .\dx11\fs_cubes.bin --depends -i ..\..\src --varyingdef varying.def.sc --platform windows -p ps_4_0 -O 3 --type fragment -O3

这是我用的dx11编译项

然后我们来试着修改一下fs shader内容

$input v_color0

/*
 * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
 * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
 */

#include "../common/common.sh"

void main()
{
	// gl_FragColor = v_color0;
	gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}

把颜色改为纯红色

编译出来的bin替换

bgfx\examples\runtime\shaders\glsl

目录下对应的bin,替换前可以备份一下原文件

看到鲜红的颜色,知道终于成功了

换到DX11模式再测试一下

$input v_color0

/*
 * Copyright 2011-2018 Branimir Karadzic. All rights reserved.
 * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
 */

#include "../common/common.sh"

void main()
{
	// gl_FragColor = v_color0;
	gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);
}

 

大功告成,坑弃回归Urho3D

 

转载于:https://www.cnblogs.com/kileyi/p/8250919.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值