快到情人节了情人节,其实已经有计划要实现这个问题许久了,一直没有时间完成…因为是情人节,所以我抽空完成了这颗心的绘制(๑ơ ₃ ơ)
⋯為什麼會覺得這顆心爛了呢( TДT)
這種仿製鑽石的割面不好看嘛( TДT)
(可視化一下世界法線⋯免得誤會我把這顆心寫爛了(TT)
使用c++和部分shader(spv),结合vulkan,绘制出来的,应该不算偏题吧(๑ơ ₃ ơ)ﻌﻌﻌ
渲染框架采用的是pathtracing,而渲染引擎使用的是鄙人写的一个小渲染器(其中的一个分支)
基本原理为求交,混合求交(解析解求交,和隐式表面求交,如距离场)
心形是使用了几个距离场复合而成(部分来自ShaderToy)
渲染材质使用了Lambert和GGX的Specular混合的半金属质感材质…
经大家的反馈我把原来的C版本代码改成了C++版本的代码
这次在MAC终端里用g++直接编译的,这是结果:
(MAC上好像显示不出爱心的辣个字符所以我用*替代了)
然后我直接把以前的C版本代码copy过来编译发现也没问题:
(只是把爱心的字符换成了*)
那么我就不造为什么你萌编译不了惹,可能是复制的时候没选全叭
我的这个爱心在搜狗输入法里的表情那里可以找到,是的我就是在那里先打出来然后照着写代码的
#include
int main()
{
int i, j, k, l, m;
char c=3; //ASCII码里面 3 就是一个字符小爱心
for (i=1; i
"); //开头空出5行
for (i=1; i
for (j=1; j
for (k=1; k
for (l=1; l
for (m=1; m
printf("
"); //每一行输出完毕换行
}
for (i=1; i
for (j=1; j
for (k=1; k
printf("
"); //每一行输出完毕换行
}
for (i=7; i>=1; i--) { //下7行
for (j=1; j
for (k=1; k
printf("
"); //每一行输出完毕换行
}
for (i=1; i
printf("%c
", c); //最后一个字符小爱心
for (i=1; i
"); //最后空出5行
return 0;
}
祝大家情人节快乐。
其次祝大家看到这个可爱的心心之后,会一直一直幸福下去*(*´∀`*)☆
领取专属 10元无门槛券
私享最新 技术干货