【开发记录】DirectX Custom Graphics Engine(1)

DirectX 11 Custom Graphics Engine (1)

这学期修了一节图像编程的课 大概是记录一下开发过程?Little bit about myself,博主是个处于大三大四之间的游戏开发专业的妹子。本来读大学之前以为自己是要搞美术的,却被现在就读学校的专业名字骗进来读了游戏开发_(:з」∠)_ 从此日渐秃顶(x)给泥们看我画的画!(叉腰.jpg)
在这里插入图片描述

好了说正题。这个引擎是DirectX 11的,有个老师给的starter code有一些基础的功能比如新建一个window之类的。之前自己写过两个OpenGL的引擎,不过也是课程内容啦。那两个引擎一个是完全自己写的,一个是老师给了starter code然后往里面加东西。不过那两节课本来应该是教C++和data structure的?不知道为什么要让我们写引擎。。。总之是专业里面很迷的两节专业课。

前五周的话大概就是完善引擎的基础功能,比如增加camera,读入模型文件,简单pixel shader和vertex shader,渲染材质之类的。之后就是group project啦。这里是group project之前的成果:
在这里插入图片描述

这里的话就是有一个简单的vertex shader & pixel shader,一个2D Texture, 一个cube mesh (obj文件),三个light。盒子的左边有一个粉红色的directional light,右边有一个蓝色的point light, 底部有一个红色的spotlight。 目前所有的光源都还没有减弱(attenuation);没有加入normal map的计算;以及spotlight不能自定义角度。

在小组里面我比较想做一个post-processing的shader,比如bloom,depth of field(景深), blur(模糊), anti-aliasing之类的。有可能的话试一下PBR(physics based rendering)?(不过这个组里面的大腿已经在小组引擎里面写好了,之后有时间的话我可能会在自己的引擎里面加上PBR功能吧)还有water可能也挺酷的,可以试试啊~ refraction(反光)也想加!不过看最后能做多少吧2333

最近自己有加上可以自定义角度的spotlight。黄色的那个好像给的是60度红色的是20度?我的math其实还有点问题。。。不过不知道应该怎么改进。看了好几个tutorial每一个计算方法都略有不同_(:з」∠)_ 后悔之前学linear algebra的时候不认真OTZ 不过嘛。。。反正spotlight还是看上去像一个spotlight的嘛 将就一下~
在这里插入图片描述
然后有加入计算normal map(国内应该是叫法线贴图?)和specular(高光?)计算。效果如下。目前所有的light source都是一个一个在pixel shader里面计算的,计划写成dynamic light array,在有多个光源的时候计算会简化很多。写normal map的时候还遇到了挺多问题的。。不过都是因为自己石乐志的原因233 比如忘记在读入文件的那个class里面加上tangent数据,忘记normalize normal啊之类的。总之很蠢就是了_(:з」∠)_ 主要是shader debug起来好难啊。。。反正render出来不对知道自己哪里有问题,但是又不知道具体问题在哪里QAQ 感觉短短几周叽己头发都又少了不少呢。
在这里插入图片描述

最近两周打算开始写depth of field。看了不少资料,感觉好像bokeh的效果最好?不过因为还没学到post-processing要先自学这部分。。。其实概念上来讲蛮简单的,就是把render好的场景存成一个2d图片,然后在上面弄一些效果什么的。Blur其实就是把一个像素和旁边的像素加起来平均一下就糊了_(:з」∠)_ 所以我在pixel shader里面先试了一下,效果如下。左边用的是有blur的pixel shader,右边用的就是正常的。这么做虽然简单但是好像不太好?因为这个只是在每一个mesh上面的效果,一般模糊可能是需要全屏模糊的?嘛,不过那个的话就是post-processing了呢。
在这里插入图片描述

以上就是目前的进度啦~ 接下来希望实现的效果有:边缘发光(外发光和内发光都可以试试),bloom(这个跟emissive还有glowing有什么区别??),以及天空盒子(skybox/cube map)。那么我们下次再见!╰(´︶`)╯♡

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值