贝赛尔曲线 - 最简易可视化理解 (转自知乎)
先 Po 原贴 Author - DBinary [toc]
# 公式
# 公式奏凯
我们知道线性插值时就是在两点之间找到当前时间点对应的 Y 值。如下图 我们可以将 P1,P0 称之为控制点 但是这种线性插值的方式没有办法模拟出细节更加完善的曲线,所以贝塞尔提出了这样一个解决办法:
增加控制点。如图,如果我们将控制点增加到三个 那么我们如何 在贝塞尔曲线 规则下找到某一时刻的 Y 值呢?假设我们要求 t=0.85 时的 Y 值,T 可以认为是 X 指
第一步,我们先求出 P0,P1 上 t=0.85 时的值
第二步,求出 p1,p2 上 t=0.85...
more...
Games101 - mipmap
# 简单插值渲染纹理得到的效果
右图远处会产生摩尔纹,近处会产生锯齿 产生的原因:远处一个像素覆盖了纹理上很大一块区域 如果这时候还用类平均来计算,当然是不对的。但是如果每个像素里面的采样点增加到很大 (超采样), 也可以得到不错的结果.(当然不是好办法)
走样是怎么来的呢?
信号变化速度过快
很大的采样区域,但是采样点很少
需要更高频的采样 (一个像素内取很多点进行采样)
但是上述方法消耗极大,为了避免采样,使用 MipMap 进行范围查询. MipMap 几个特性 (fast,approx (不准),squra), 只能用于近似正方形的范围查询 MipMap...
more...
C++系列补齐 智能指针实现
其实大体思路就是引用计数器嘛
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include<iostream>#include<string>using namespace std;template <typename T>class SharedPtr...
more...
(转 - 烟雨) C#反射为什么这么慢
[toc] https://www.lfzxb.top/what-causes-csharp-invoke-method-by-reflection-slowly-and-how-to-solve-it/
# C# 反 射为什么这么慢
# 反射的设计初衷
在 运行时 非常快的访问我们所需要的代码信息
在 编译时 非常直接的访问生成代码所需的信息
垃圾回收器 / 计算堆栈能够在不对程序加锁 / 分配内存的情况下访问必要的信息
能极大减少一次性需要加载的类的数量
能极大减少给定类型加载时所需要加载的额外类型数目
类型系统数据结构必须在 NGEN...
more...
Solvarg故事脉络
一切始于那场战争,你们一族的始祖 Solvarg 在追到太阳的那一刻,世界便开始了长达百年的战争。 在那之后,Solvarg 厌倦了争斗,它在这个世界上隐藏了一个可以在战争前终结战争的武器。 第一个场景是教程关卡,玩家需要在这个场景内学会大部分的操作。第二个场景是小战斗教程关卡,玩家需要在这个场景学会小战斗 (即仿命运之轮的战斗) 第三个场景进入到金色老者的场景,老者背对着玩家,独自在诉说着千年前的故事。说罢,玩家将进入到现世。第四个场景,抉择:玩家用爪子触碰到太阳上的爪印,跳跃飞行前在默默地哭泣,并且微笑。第五篇:理由 (这个理由每个人都可以添加,每个人都有救这个世界的理由不是么.)...
more...
Google Poly Brush 的 Shader 拆解 (一)
最近找到了 Google Poly 的插件 (Unity asset store 里下载就可以), 看里面的 Shader 很棒,所以开这个专栏来进行学习 (重点是应用) 主要是两个 cginc
后面会对每个效果进行代码拆解
# Brush.cginc 和 Particles.cginc
# Brush/Partice/Snow
# 属性
123456789Properties { _TintColor ("Tint Color", Color) = (0.5,0.5,0.5,0.5) _MainTex...
more...