- 博客(15)
- 资源 (41)
- 收藏
- 关注
原创 ShaderJoy —— 纯 shader 实现立方体的渲染(含线框效果,虚线线框效果),带你了解渲染管线内部细节和原理【GLSL】
效果图动态图静态图立方体的顶点属性数据首先,我们定义基本图元 —— 三角形的数据结构struct Triangle{ /// @note 三角形的三个顶点和 uv 坐标 vec3 a; vec2 aUV; vec3 b; vec2 bUV; vec3 c; vec2 cUV; vec3 n; ///< 法线};因为立方体有 6 个面,8个顶点(包括纹理坐标和法线),一面由 2 个三角形组成,我们可以手动进...
2020-09-08 15:49:15 2422 2
原创 ShaderJoy —— GPU 上的纹理性能优化实例( 基于 Android GPU Inspector,即 AGI)
片段着色器最重要的任务就是从纹理当中获取和过滤像素值。与其相关的 GPU 性能指标可以被总结为三类:带宽 缓存行为(cache behaviour) 滤波(filtering)举个栗子以某一个游戏为例,如图带宽为了确保传输给 GPU 的纹理数据不会超过一定的带宽限制,它的均值就不宜超过 1GB/s, 峰值不宜超过 6GB/s,显然它的数据已经超出了预期的带宽范围(blow up the bugdet)后续操作(后处理)的部分只有高出一点点并且趋向于帧的后...
2020-09-29 16:22:10 1910
转载 【转载】简述 LLVM 与 Clang 及其关系
转自:https://blog.csdn.net/xhhjin/article/details/81164076我对文章进行了排版,并将其中的关键部分进行了标记,方便抓住重点引言随着 Android P 的逐步应用,越来越多的客户要求编译库时用 libc++ 来代替 libstdc++。libc++ 和 libstdc++ 这两个库有关系呢?它们两个都是 C++ 标准库,libc++ 是针对 Clang 编译器特别重写的 C++ 标准库,而 libstdc++ 则是 GCC 的对应 C.
2020-09-29 12:14:19 1091
原创 ShaderJoy —— Raycast 实现的景深效果【GLSL】
举例:Raytrace 实现效果图当我们想利用 Raytrace 技术实现一些伪 3D 的效果的时候,常常会遇到 ViewRay 和平面 是否相交的问题。首先我们来看看普通版的解决方法。普通版如果只是简单的判断从相机射出的光线 ViewRay 是否和平面相交,我们只需要把光线向量和平面的法向量进行点乘即可,如下代码所示/// @note 光线追踪之平面/// @param pl 平面法线/// @param ro Ray Origin/// @param rd R...
2020-09-27 15:20:28 1582 4
原创 ShaderJoy —— Tricky 的黏黏弹球【GLSL】
效果图从左到右,再从右到左(带回弹)的效果从左到右,再从右到左(黑色矩形无回弹)的效果黑白分割的矩形第一个 tricky 的地方 —— 用一个很大的矩形,右移来构造左黑右白的效果 p.x -= w * 1.; ///< 右移 float sdPl = sdBox(p, vec2(w, h)); ///< 矩形 // fragColor = vec4(sdPl); ///< 测试 ...
2020-09-24 19:25:44 1295
原创 ShaderJoy —— Tricky 的图像透视效果【GLSL】
效果图稍作修改后的效果思路解析首先针对纹理坐标进行变换vec2 a = vec2(2.*I.x, I.x + I.y); ///< 右图vec2 b = vec2(-2.0 * I.x, -I.x + I.y); ///< 左图vec2 c = vec2(-I.x - I.y, I.x - I.y); ///< 下图I.x + I.y 的示意图,颜色越白表示值越大-I.x + I.y 的示意图...
2020-09-24 12:38:35 1414
原创 ShaderJoy —— 简单又神奇的 “合体” 函数【GLSL】
smin 函数它实际上有两种常见的实现方式多项式 指数多项式 smin 函数图其对应的代码为float smin( float a, float b ){ // 多项式 const float k = 0.5; float h = clamp(0.5 + 0.5 * (b - a) / k, 0.0, 1.0); return mix(b, a, h) - k * h * (1.0 - h);}从上图中我们可以很明显的看出有两处不连...
2020-09-20 19:43:31 1470
原创 AEJoy —— 值得收藏的常用 29 个 AE 表达式实例
1] Numbers:Add a slider and name to 'Value'places = 3; //number of decimal places desiredval = effect("Value")("Slider"); //sub in the name of your slider herefactor = Math.pow(0.1, places) ;sign = "";if (val < 0) sign = "-";val = Math.abs(...
2020-09-14 17:32:50 5031 1
原创 AEJoy —— 介绍神奇的 10 个 AE 表达式附带 2 种简单的调试方法
对于那些不熟悉 AE 的人来讲很快那么 AE 表达式是什么呢?AE 表达式是一个基于 Javascript 编程语言的代码,您可以通过按 Alt + 左键点击小码表来插入到 AE 中。如图所示AE 表达式非常强大,可以非常方便地制作酷炫的运动图形特效。它令人惊奇的地方是,仅仅需要少许的编程代码,它可以就可以帮助您的动画生动地运动起来。AE 表达式可以显著改善您的工作流程,当您创建一个拥有复杂代码的动画时,甚至可以真切地实现惊人的动态图形特效。弹性表达式弹性表达式...
2020-09-11 15:19:14 2283 2
转载 【转载】AE 表达式精通大法
本文是转自设计树 的一篇文章,我对文章进行了重新排版,并标注了重点原文地址 ——AE表达式精通大法以下是正文部分:AE 表达式一直是大家学习 AE 过程中的一道坎,涉及代码网上教程资源又不多,于是很多人都没有完全地领略到 AE 表达式的魅力。于是这一次,我花了大量时间学习研究同时结合自己以往在工作中对表达式的运用心得。为大家带来这套系统的表达式教学。在学习表达式之前我们需要对表达式有个基本的了解。首先我们需要排除一个想法,表达式真的像我们想象的那么难学吗?答案是否定的!其实表达式并不...
2020-09-11 12:53:15 2062
原创 AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【三】
继之前的这两篇文章 ——《AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【一】》《AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】》挖了坑之后,还剩两个表达式没介绍,那么这篇就负责把它们给填上。loopInDuration(type,duration) loopOutDuration(type,duration)loopOut1. cycleduraiton = 0从上图可知,小车每次都从第一帧的位置开始运动到最后一帧,同时速度也是从头...
2020-09-11 00:48:40 2824 1
原创 AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】
在前一篇文章《AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【一】》,我们讲解了 loopIn/loopOut 在不同 numKeyframes 的情况下的一些区别,但是 type 类型都是默认的 cycle,那么这篇文章则来辨析一下它们在不同 type 下会产生哪些变化。首先,我们来看一下 type 支持的几种类型的定义cycle(默认) 简单重复特定的关键帧片段 pingpong 前后往复地重复指定的关键帧片段 offset 重复特定的关键帧片段,但每.
2020-09-10 20:06:45 3089
原创 AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【一】
通过阅读本文,您将收获以下知识点loopInloopOut以及它们各自在不同type和duration下的区别;本文默认您已经具备了 AE 中关键帧(KeyFrame)的基础概念,并且以下的演示都是基于 4 个关键帧(依次从左到右)小车,如下所示4 个关键帧,当前小车处在第三个关键帧的 Position我们先从比较简单loopOut开始(loopIn的思维稍稍有点反人类,但是转过弯来就容易理解了)
2020-09-10 15:41:30 13650 3
原创 AEJoy —— 程序员入门 AE 的一些知识点整理【不定时更新】
动态图静态图参考:ai如何分层导入ae 教程-AI矢量图巧妙导入AE及PS方法总结 矢量图形连续栅格化按钮去哪了
2020-09-04 03:22:32 1440 1
原创 AEJoy —— 详解 AE 如何将 png 序列帧导出为 SVGA 动画文件
1.导入 png 序列帧至AE从菜单栏“导入” -> “文件”,选择存放序列帧的文件夹然后导入,接着看到如下界面,直接确定。此时,窗口中就显示了我们所导入的所有序列帧,如下所示2. 对序列帧进行裁剪【关键】我们刚导入的序列帧默认是占据了整个时间线的所以我们需要手动对它进行截取,windows 上的快捷键是 alt + [ 和 alt + ] 来分别进行前后的裁剪。裁剪的结果如下所示,这里我们只保留一帧的时间。3.将序列帧进行错位...
2020-09-02 10:20:28 20053 8
手把手带你用 Unity 开发游戏(2021)第二版
2022-02-18
网络前端的 shader 视频教程 (3)
2022-02-16
网络前端的 shader 视频教程 (7)
2022-02-16
网络前端的 shader 视频教程 (6)
2022-02-16
网络前端的 shader 视频教程 (5)
2022-02-16
网络前端的 shader 视频教程 (4)
2022-02-16
网络前端的 shader 视频教程 (2)
2022-02-16
网络前端的 shader 视频教程 (1)
2022-02-16
《终极的 Git 课程 —— 与虚幻引擎相结合 》(2)
2022-02-15
《终极的 Git 课程 —— 与虚幻引擎相结合 》(4)
2022-02-15
《终极的 Git 课程 —— 与虚幻引擎相结合 》(3)
2022-02-15
《终极的 Git 课程 —— 与虚幻引擎相结合 》(1)
2022-02-15
Instagram 滤镜 Spark AR视频教程 (3)
2022-02-15
Instagram 滤镜 Spark AR视频教程 (2)
2022-02-15
Instagram 滤镜 Spark AR视频教程 (1)
2022-02-15
上千种实用视频蒙太奇特效制作效果 Montage Library v5.0.rar
2021-09-30
1000 种出入场文字动画效果 Text Library v3.1.rar
2021-09-30
纹理合成 C++ 代码
2020-12-10
matplotlib-cpp 源码.zip
2020-02-06
2D 折线顶点平滑算法
2020-01-14
OpenCV310 Cmake
2016-10-17
编译过的Cartoonifier_Android工程
2013-08-21
精通Android增强现实源码
2013-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人