UE4的着色器跨平台解决方案

最近试着阅读 UE4 的shader代码,发现几乎全是基于HLSL语法的 .usf 文件。于是我产生了疑问:作为一个跨平台游戏引擎,UE4是如何做到在那些只支持 OpenGL 的平台上使用HLSL着色器的呢? 于是我找到了UE4在2014年GDC上分享的PPT:Bring UE4 to OpenGL 原来UE4受到了 GLSL optimizer 的启发,自己开发了一个名为 HLSLCC 的跨平台编译器,能够将HLSL编译成GLSL。 下面是网上找到的,另一些与Shader跨平台有关的文章: ...

体积云研究资料

这两个月很忙,工作之余阅读了一些体积云的资料。看别人做的特效让我感到很兴奋,也想用jMonkeyEngine尝试实现,无奈实在没有时间。 这些资料的网址先记录下来,等有空了再琢磨。 The Real-time Volumetric Cloudscapes of Horizon-Zeor Dawn-ARTR.pdf Himalayas Nubis: Authoring Real-Time Volumetric Cloudscapes with the Decima Engine 生成Tilable的perlin-worly噪声的方法 ...

【笔记】创建一个窗口

教程原文:https://bullteacher.com/3-createawindow.html 这一章的大部分内容都在介绍如何构建开发环境。 配置开发环境 MinGW MinGW的安装很顺利,只是下载花了一些时间。网上有很多安装教程,我参考了这些: Windows系统结合MinGW搭建软件开发环境 MinGW在Windows下的安装配置 根据网上的教程,配置完环境变量后就可以使用make命令了。下图是 make -version 执行的结果。 有一点需要留意:网上有些教程会让你把 mingw32-make.exe 重命名成 ...

学习OpenGL的准备工作

兵马未动,粮草先行。 开发环境 类型 工具 下载地址 编辑器 Eclipse Oxygen CDT https://www.eclipse.org/downloads/packages/ 编译器 MinGW http://www.mingw.org/ 编译工具 CMake https://cmake. ...

学习OpenGL的原因

学习OpenGL底层API的念头已经在我心里徘徊很久,现在似乎到了可以付诸实施的时候。乘着编译freeglut的间隙,随便写点东西。 2015年刚开始接触3D游戏开发时,我对OGL、D3D这种底层API是十分畏惧的。熟悉我的朋友知道,这两年我一直在学习jMonkeyEngine,一款纯Java的3D游戏引擎。但事实上,我接触3D编程的第一本书,是号称“龙书”的《DirectX 9.0 3D游戏开发编程基础》。 由于我当时完全不懂计算机图形学、3D数学等基础知识,在学完龙书的前6章后,我就放弃了继续学习D3D的想法。对于当时的我来说,D3D9的API太过底层,我完全不理解画一个三角形为什么要调用那么多函数。 ...