自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 linux非阻塞的socket发送数据出现EAGAIN错误的处理方法

一、非阻塞socket        非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。 int32_t flags = fcntl

2016-08-13 18:18:17 9841

原创 Shader半透明物体的双面渲染

在学习Shader的过程中,或许手头上并没有半透明的物体,在验证shader代码的过程中,我们可以通过添加测试代码把不透明物体当成半透明物体来使用。使用Cull Front剔除正面,并且禁止深度写入Zwrite Offf,开启混合Blend SrcAlpha OneMinusSrcAlpha。双面渲染原理:先渲染背面,再渲染正面,最后把正面和背面颜色混合起来Blend SrcAlpha OneMinusSrcAlpha。半透明物体的渲染相对不透明物品麻烦一些,需要透过证明能够看清背面的颜色。

2023-12-24 19:31:23 493

原创 ShaderLab模板测试:3D模型穿帮问题

2> 对于场景中的物体(角色、怪物、可破坏物件、阻挡物件等)开启模板测试,关闭深度测试Zwrite Off,用于模板测试的模板值有逻辑层控制,越前面的越大;5> Pass comparisonFunction:如果模板和深度测试都通过,缓存中的模板值如何处理,默认是keep。7> ZFail comparisonFunction: 如果深度测试不通过,缓存中的模板值如何处理,默认是keep。6> Fail comparisonFunction:如果模板测试不通过,缓存中的模板值如何处理,默认是keep。

2023-12-24 18:20:37 425

原创 ShaderLab实现阴影效果

Unity可以利用阴影贴图来实现阴影效果,阴影贴图实现原理和深度缓存类似,将摄像机移动到灯光处,将片元从近到远排序,进行深度测试,测试通过的写入到阴影贴图中。再把摄像机回到之前的位置,进行正常的渲染,在片元渲染的过程中,从阴影贴图获取阴影,叠加到片元的颜色中去。3、在片元着色器中调用UNITY_LIGHT_ATTENUATION方法,来对阴影贴图进行采样;2、在顶点着色器中调用TRANSFER_SHADOW方法,来获取阴影贴图的坐标;

2023-12-22 00:16:17 355

原创 Blinn-Phong 光照模型实现

Blinn-Phong光照模型算法是对Phong光照模型的改进,修改的是镜面反射光的算法。先计算入射光线l和视角方向v的角平分线h,再计算h和法线normal的点积,来替代dot(reflect, viewDir)。镜面反射:灯光颜色 * 物体表面镜面反射颜色 * 光照反射方向与视角方向点积的光泽度次方幂。漫反射光:灯光颜色 * 物体表面漫反射颜色 * 法线与光源方向的点积。物体表面反射光线由三部分组成:环境光+漫反射光+镜面反射光。reflect :光照方向的反射方向。一、Phong光照模型。

2023-12-20 23:41:54 600

原创 编程之美:求二叉树中节点的最大距离(非递归法)

题目:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义“距离”为两个节点之间边的个数。写一个程序求一颗二叉树中相距最远的两个节点之间的距离。树的高度:树中节点的最大层次相距最远的节点有2种情况:1)经过根节点,2个节点在根节点左右子节点为根的子树上(左右子树不存在的时候以根节点代替节点);      最远距离 = 左子树深度 + 右子树深度;2)

2015-09-10 17:34:57 1036 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除