
opengl
文章平均质量分 60
ruofeng133
技术美术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
radiance和irradiance
https://zhuanlan.zhihu.com/p/139468429偷一张图Radiance辐射(Radiance)或亮度(luminance) [公式] :是指一个表面在每单位立体角、每单位投影面积上所发射(emitted)、反射(reflected)、透射(transmitted)或接收(received)的辐射通量(功率)。Irradiance辐照度:在面积[公式] 的总辐射通量再偷一张图...原创 2022-02-03 13:31:25 · 2418 阅读 · 0 评论 -
图形学 View矩阵的构造
经常遇到View矩阵的构造,现在记下来彻底弄明白吧参考: https://gameinstitute.qq.com/community/detail/117006所谓空间坐标其实就是以什么为笛卡尔坐标系,为参考系相机的话是以相机朝向为Z(-Z),上方为Y,右方为Xlocal到world众所周知,世界空间才是我们所熟知的空间,所以图形学其实是希望所有空间都转到world空间来理解,我的理解是这样的,P代表位置 图形学 View矩阵的构造代表 transform rotation scaleP.原创 2021-11-13 15:33:53 · 3103 阅读 · 0 评论 -
Unity Texture2D 拼接图片保存R通道B通道互换的问题
https://stackoverflow.com/questions/15853050/c-sdl-opengl-loaded-images-colors-are-inverted貌似图片存储方式就是用BGR顺序存储的,opengl在读取的时候会自动转换为RGB解决方法再换回来就好了for (int x = 0; x < origin.width; x++){ for (int y = 0; y < origin.height; y++) { var color = o.原创 2021-06-29 14:01:24 · 814 阅读 · 2 评论 -
各种抗锯齿总结
https://mp.weixin.qq.com/s/shU-POBZRMSOPstkO8HlZAhttp://www.lotpc.com/yjzs/8276.htmlhttp://www.evil3d.cn/2017/07/17/technology/2017-07-17-smaa.htmlhttps://zhuanlan.zhihu.com/p/57503885TAAMSAA(MultiSamplingAnti-Aliasing)多重采样抗锯齿原理是对边缘部分进行放大分辨率然后缩小.原创 2021-01-19 12:34:50 · 3927 阅读 · 0 评论 -
Unity后处理描边
只实现了一个再渲染一遍的版本,没有下面链接里实现的好https://indienova.com/indie-game-development/stencil-buffer-4/代码private void Awake(){ EventManager.Instance.Subscribe(ChangeUVEventArgs.EventId, HighLightPlayer); m_RenderTexture = new RenderTexture(Screen.width, S.原创 2020-11-16 19:10:31 · 1398 阅读 · 0 评论 -
fbxsdk2019 无法解析的外部符号
https://blog.csdn.net/lilysara/article/details/53940353问题就是报错,编译不通过解决貌似新版本改了一些调用方式增加几个静态库就好了原创 2020-11-03 22:39:09 · 717 阅读 · 0 评论 -
UnityShader利用stencil 实现人体透视
这里用到了两个Passquad 的渲染参考 上篇文章 这里Pass1{ Stencil { Ref 1 Comp Equal } ZWrite Off // 渲染网格}Pass2{ Stencil { Ref 1 Comp NotEqual } ZWrite On // 渲染模型}ObjectShader "Z/QuadWireframe"{ Proper.原创 2020-10-10 16:01:46 · 715 阅读 · 0 评论 -
UnityShader Stencil 模板测试 线框 网格
https://blog.csdn.net/u011047171/article/details/46928463#t4注意:蒙版测试和Unity物体的渲染顺序一样,都是从摄像机往天空盒方向渲染的(从前往后)if(ref & readmask (op) buff & readmask){ 通过}else{ 失败}灵魂画师????...原创 2020-10-10 14:36:01 · 600 阅读 · 0 评论 -
PBR与各种光照
今天把PBR和各种相关的光照总结一下吧,后续还会有补充https://www.unrealengine.com/zh-CN/blog/gdcc2015-pbrhttps://blog.csdn.net/poem_qianmo/article/details/88936992https://en.wikipedia.org/wiki/Bidirectional_reflectance_distribution_functionPBR(Physicallly-Based-Rendering)字面意.原创 2020-09-10 15:44:35 · 1518 阅读 · 0 评论 -
Unity BillBoard广告牌
两种方法 一种是脚本 一种是shader脚本transform.forward = -Camera.main.transform.forward;shaderfloat4x4 m = UNITY_MATRIX_V;m[3] = unity_ObjectToWorld[3];float4 pos = mul(m, v.vertex);原创 2020-09-09 17:54:29 · 521 阅读 · 0 评论 -
Unity shader 关于卡通渲染阴影闭塞的实现
想实现一个胸部的动态阴影效果这种推测应该是,AO贴图 + 边缘光的算法 + 梯度图lerp。我没用AO贴图(嫌麻烦????)相关代码// falloffhalf normalDotEye = dot( worldNormal, worldViewDir );half falloffU = clamp(1 - abs( normalDotEye ), 0.02, 0.98 );fixed3 rampT = tex2D( _FalloffSampler, float2( falloffU原创 2020-05-28 16:07:40 · 1163 阅读 · 0 评论 -
Unity shader简单闪点 亮片
v2f vert2 (appdata v){ v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); return o;}float random (float2 st, float n) { st = floor(st * ...原创 2020-04-21 16:55:30 · 1725 阅读 · 0 评论 -
Unity Shader X-ray X光 被遮挡效果
有时候我们想让自己控制的角色在障碍物内显示出来,着中国透明效果可以 用rim边缘光来绘制,即面与视线越接近90度 那么所绘制的颜色越暗。可以先绘制X-ray再绘制物体,这样可以避免自己“穿透”自己的的问题。Shader "Unlit/X-ray"{ Properties { _Color ("_Color", Color) = (1, 1, 1, 1) ...原创 2019-07-30 19:12:36 · 1804 阅读 · 0 评论 -
Unity SOFT SHADOWS WITH PCSS
这里是引用https://blog.csdn.net/kevin_dust/article/details/51903101http://developer.download.nvidia.com/whitepapers/2008/PCSS_Integration.pdf相当于抄的第二个引用原创 2019-07-16 18:11:31 · 1979 阅读 · 2 评论 -
Win10 添加可选功能 图形工具
搜了好多 终于找到答案了安装这个需要两个条件:修改注册表 1 -> 0科学上网 全局模式 不科学上网的话不行 不知道为啥然后再 win + i 找到程序-管理可选应用-添加。 等待转圈圈 转完了 带你安装就好了...原创 2019-07-11 12:24:21 · 10324 阅读 · 4 评论 -
Unity shader 随机数
inline float ValueNoise(float3 pos){ float3 Noise_skew = pos + 0.2127 + pos.x * pos.y * pos.z * 0.3713; float3 Noise_rnd = 4.789 * sin(489.123 * (Noise_skew)); return frac(Noise_rnd.x...原创 2019-07-14 19:27:35 · 6806 阅读 · 2 评论 -
OpenGL 邻近过滤和线性过滤
引用 http://learnopengl-cn.readthedocs.io/zh/latest/01%20Getting%20started/06%20Textures/效果:邻近过滤(Nearest Neighbor Filtering)左上角那个纹理像素的中心距离纹理坐标最近,所以它会被选择为样本颜色: 线性过滤(linear Filtering)它会基于纹理坐标附近的纹理像素,计算出一原创 2018-02-26 14:27:40 · 3474 阅读 · 0 评论 -
opengl vs2017转换vs2010遇到的问题
从vs2017的工程转换到2010遇到很多坑,下面总结一下1、vs2017的工程2010可以直接用,方法是 新建一个工程-> 打开现有项目 vcxproj2、因为不同vs平台版本不同,所以需要切换平台 3、改调试信息为 是 4、最好在附加依赖项里引入lib(#parama comment的方式可能会出问题) 5、soil.lib 必须用vs2010自己的机器...原创 2018-03-03 01:10:18 · 1305 阅读 · 0 评论 -
图形学基础知识(渲染管线)
流水线图元:点、线、多边形。(primitives)片元:二维图象上每个点都包含了颜色、深度和纹理数据。将该点和相关信息叫做一个片元(fragment)大概流程 硬盘 -> CPU -> RAM ->显卡 http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_images....原创 2018-06-01 11:13:58 · 1402 阅读 · 1 评论 -
PS制作 Bloom效果
其实就是先提取高亮度区域, 然后做个高斯模糊, 最后拼成一张图片原创 2019-05-03 11:11:07 · 1764 阅读 · 0 评论 -
GPA 分析3D游戏
inter的 GPU分析工具:https://software.intel.com/en-us/gpa/free-download原创 2019-04-29 09:44:39 · 1884 阅读 · 0 评论 -
卡通渲染 描边 outline 部分shader
顶点着色器float4 viewPos = mul(UNITY_MATRIX_V, mul(unity_ObjectToWorld, v.vertex));viewPos = viewPos / viewPos.w;float3 N = UnityObjectToViewPos(v.normal);N.z = 0.0099999998;N = normalize(N);// 这段话...原创 2019-05-07 12:32:50 · 1742 阅读 · 1 评论 -
Unity 漫反射自阴影 光线过曝问题
// 用一个lerp函数就行了fixed3 diffuse = lerp(_DarkColor, _BrightColor, hLambert);不知道还有没有更好的办法原创 2019-05-12 17:42:58 · 1380 阅读 · 0 评论 -
Unity Shader顶点变换小记
这有一篇引用 https://blog.csdn.net/qq_34469717/article/details/78528231关于片元沿着法线法向偏移的方法,其实再哪个空间偏移都可以,关键看具体需要局部空间 v2f vert (appdata v) { v2f o; o.uv = TRANSFORM_TEX(v.uv, _MainTex); ...原创 2019-05-24 10:46:47 · 690 阅读 · 0 评论 -
Unity shader 空气扭曲效果
参考 https://blog.csdn.net/puppet_master/article/details/70199330Shader "Unlit/Distort"{ Properties { _MainTex ("Texture", 2D) = "white" {} _DistortStrength ("_DistortStren...原创 2019-06-24 13:48:50 · 5561 阅读 · 0 评论 -
unity shader 实现Ps的 19号笔刷"厚涂"阴影效果
因为要实现个笔触的逐层上色效果 类似于下图这种 想了下 其实就是透明度混合,如果想获得更细腻的效果,即模拟数位笔的压力,可以用lambert的数值lerp两个颜色来模拟。可以用渐变贴图来获取lerp的插值权重。...fixed3 ramp1 = tex2D(_Ramp, float2(hLambert, 0.5)).rrr;...fixed3 diffuse = _BaseColo...原创 2019-07-08 12:57:56 · 2043 阅读 · 0 评论 -
Unity shader把不透明图片变透明的办法
参考 http://blog.sina.com.cn/s/blog_471132920101d8z5.html如图 红色为挂载shader的物体 中间那个就可以做到透明图片的效果 (其实就是用了个混合(假透明))原创 2019-06-24 15:35:45 · 4127 阅读 · 0 评论 -
Unity shadow map
参考:http://fabiensanglard.net/shadowmapping/index.phphttps://learnopengl-cn.readthedocs.io/zh/latest/05 Advanced Lighting/03 Shadows/01 Shadow Mapping/https://www.jianshu.com/p/17ccdd7c0888不知为啥直接...原创 2019-07-12 18:13:20 · 1214 阅读 · 0 评论 -
Unity SOFT SHADOWS WITH PCF
我的上一篇博客里有提到过 shadowmap 本文是基于上文的基础上的https://blog.csdn.net/A13155283231/article/details/95642265PCF 的全称是 Percentage closer Filtering我翻译它为 百分比临近过滤原理 就是把周围的点加起来做均值,以得到淡化的效果在片元着色器里修改下 阴影判断的饭是钢hi就好了...原创 2019-07-12 19:18:57 · 2180 阅读 · 1 评论 -
OpenGL 环境配置
以vs2010为例参考链接:opengl学习1、先定位目录2、定位链接库3、导入头文件4、检查包含目录的文件对不对链接lib 的简便方法1、添加一个项目 2、用代码链接lib 3、需要用到的时候直接引用包含 ...原创 2018-02-10 12:24:07 · 394 阅读 · 0 评论