用C++画光(一)——优化】的更多相关文章

写在前面 在先前的画光系列中,实现实体几何.反射.折射等效果,但是最大的一个缺陷是复杂度太高.当采样是1024时,渲染时间直线上升(用4线程),以至好几个小时才能完成一副作品,实现太慢.然而,当我看到用C++画光(一)这篇文章时,我有了一些思路. 我想到了[游戏框架系列]简单的图形学(一)系列文章中的思路,对啊,何必用SDF去慢慢逼近呢?用现成的解析几何算法去做不是更快吗? 过了一番摸索,终于有了题图. 要注意的地方 检测圆与直线相交的算法,我从用JavaScript玩转计算机图形学(一)光线追…
写在前面 源码:https://github.com/bajdcc/GameFramework/blob/master/CCGameFramework/base/pe2d/Render2DScene5.cpp 本文主要内容: 三角形的渲染 聚光效果的实现 色散的简易版实现 三角形的渲染 在上一文中,主要介绍了矩形的渲染,其实三角形也跟它差不多,无非就是判断线与线的关系罢了. 三角形的数据结构: // 三角形 class Geo2DTriangle : public Geo2DShape { pu…
在上篇文章的基础上,做了许多调整,修复了许多BUG.在解决bug的过程中,我逐渐领悟到一个要领:枯燥地一步步调试太痛苦了,找不到问题的根源!所以我选择将中间结果打到图片上.如: (注意,里面的点是我随便点的,有互动了吧) 调试光线和最近交点法线 调试光线和最远交点法线 这就非常爽了! 本文分两个部分,一个是交并差的实现,一个是矩形的实现. 基本数据结构 // 点信息 struct Geo2DPoint { Geo2DPoint(); Geo2DPoint(float distance, cons…
演示项目下载地址:https://github.com/YYProgrammer/YYTableViewDemo 项目里的低性能版是常规写法实现的tableview,高性能版是做了相关优化后的tableview. tableView滑动为什么会卡? 我们可以想象这样一个场景: 有一个老师.学生A.学生B.一个画板.一个橱窗. 每一秒钟,老师都要告诉学生A一个题目让他们作画,学生A负责研究这个题目表达的含义,然后告诉学生B应该画什么,学生B收到消息后,在画板上画出对应的画,在这一秒钟结束之时,把画…
深度学习的基本原理是基于人工神经网络,输入信号经过非线性的active function,传入到下一层神经元:再经过下一层神经元的activate,继续往下传递,如此循环往复,直到输出层.正是因为这些active functions的堆砌,深度学习才被赋予了解决非线性问题的能力.当然,仅仅靠active functions还不足于使得深度学习具有"超能力",训练过程中的优化器对于组织神经网络中的各个神经元起到了至关重要的角色.本文简单汇总一些常用的active functions和op…
0x00 前言 最近读到了一个今年GDC上很棒的分享,是Sebastian Aaltonen带来的利用Ray-tracing实现一些有趣的效果的分享. 其中有一段他介绍到了对Signed Distance Field Shadow的改进,主要体现在消除SDF阴影的一些artifact上. 第一次看到Signed Distance Field Shadow是在大神Inigo Quilez的博客上,较传统的阴影实现方式,例如shadow map,视觉效果要好很多.可以看到下图中物体的阴影随着距离由近…
目录 完整目录 1. 简介 2. 编码简单数学表达式 2.1 分数 2.2 上标和下标 2.3 空白(空格)字符使用 3. 编码其他数学表达式 3.1 分隔符 强烈推荐本文简明版UnicodeMath编码教程 本文为UnicodeMath官方文档的翻译,原文看这.翻译如有不准还请谅解! 由于我个人只想学习在word中使用UnicodeMath,故可能不会翻译整个文档. word插入公式不自动斜体的解决办法 微软官网Word 中使用 UnicodeMath 和 LaTeX 的线性格式公式 本文持续…
参考自:用JavaScript玩转计算机图形学(二)基本光源 - Milo Yip - 博客园,主要讲述三种最基本的光源--平行光.点光源.聚光灯,其实就是三种数学模型. 代码的调整 先前的代码中,颜色是由几何物体自身计算得出,因此使用很有限.在Phong材质中,显示的效果已经很不错了,然而Phong材质是要假定有一个光源的.我们的代码需要从以面向物体渲染为面向光源渲染. 新的逻辑:https://github.com/bajdcc/GameFramework/blob/master/CCGam…
声明 数字对 Time Limits: 2000 ms    Memory Limits: 262144 KB Description 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题.  她的面前浮现出一个长度为 n 的序列 {ai},她想找出一段区间 [L, R] (1 <= L <= R <= n). 这个特殊区间满足,存在一个 k (L <= k <= R),并且对于任意的 i (L <= i <= R),ai 都能被 ak 整除.这样的一个特…
主要的图形算法抄自一个叫w_jsGraphics.js的类库,第一次看到那个库的时候,感觉那是十分神奇的存在.不过估计现在那个库早就已经找不到了. 这是很早之前的一个DIV绘图类,那时候VML+SVG的JS图库还没流行. 最初的神创造一个点,然后由这个点便画出一条线,最后这条线绘出了一个个世界.  /** *JS 绘图类 Graphics- 0.02 *@author <a href="mailto: redrainyi@gmail.com">yao</a> *…