jaccen
这个作者很懒,什么都没留下…
展开
-
可微分概述
但是一旦渲染器可微分,就可以集成到优化或者神经网络管线中(比如:梯度下降算法使用导数来调整参数,并通过使用梯度反向传播技术调整权重来训练神经网络),从而解决逆向图形问题:比如2D到3D的重建或者光传输优化等。2)可以将渲染的输入(材质、场景、光照等)作为各种参数,最终结果对参数求导。可微渲染的目标就是提供可微渲染函数,计算该函数对于不同场景参数的导数。总体来说,路径追踪的渲染函数由使用蒙特卡罗方法估计的嵌套积分组成。当我们根据场景参数对这个函数进行微分时,我们遇到的主要障碍将来自于这些积分的微分。原创 2024-01-17 19:29:08 · 321 阅读 · 0 评论 -
Vulkan---01 准备工作
1、支持vulkan的显卡,Nvida、AMD、Intel、Apple Silicon(Apple M*)等。3、支持c++17的编译器(Visual studio 2017+, GCC 7+ Clang 5+)2、具有C++经验,熟悉RAII。4、一些3D图形学知识。可以基于以下引擎学习。原创 2024-01-17 09:33:00 · 195 阅读 · 0 评论 -
Filament材质部分
SPIR-V主要被用于实现Graphics和Parallel Compute领域的Shader、Kernel 编译器,目前,Vulkan,OpenGL,OpenCL,LevelZero等常用的drivers都支持SPIR-V。cmake首先调用了matc命令行工具来编译所有的mat文件,编译后得到filamat为后缀的二进制文件,然后用一个叫做resgen的工具打包所有的资源。也就是说,Filament使用的是glslang作为着色器语言(即前端),后端使用spirv来编译成不同平台的着色器代码。原创 2023-01-10 16:45:11 · 419 阅读 · 0 评论 -
光线追踪
1、概念 全局光照(Global Illumination,简称 GI),是指既考虑场景中来自光源的直接光照,又考虑经过场景中其他物体反射后的间接光照的一种渲染技术。 光线追踪(Ray tracing),只是全局光照的一个实现方向,当然还有辐射度、环境光遮蔽(ambient occlusion)、光子贴图、Light Probe等方向。 环境光遮蔽(AO)以主光线的交点位置为起点,交点的法线为中心,发射若干条随机光线做半球上的蒙特卡洛积分,积分结果再除以PI归一化到[0, 1...原创 2021-01-04 21:00:14 · 599 阅读 · 0 评论 -
跨平台引擎基础
1、平台考虑 需要支持Windows、IOS、MACOS、Android、Ubuntu、Web等 支持Opengl、ES2.0 、ES3.0、Vulkan(可能最底层直接支持bgfx)2、编译工具 CMake、 Clang3、语言 C++144、编辑器 支持Windows、Ubuntu、MacOS5、脚本 l...原创 2019-06-04 14:24:08 · 625 阅读 · 0 评论 -
3D Engine 开发
基于Opengles 3D引擎原创 2015-11-19 21:49:10 · 1492 阅读 · 1 评论 -
一步步构建3D引擎-------架构设计
打算将所做3D引擎一些心得,分篇章记录下来。主要基于OpenGLES2.0,采用面向对象设计语言C++实现的跨平台轻量级高速引擎。以做个总结:对于一个3D引擎,主要应该有一下模块组成:该引擎的最终规划主要由四个模块组成,每个模块完成的功能描述如下:第一模块: 数学库:提供通用数学运算库和三维数学运算库(如向量、矩阵); 资源管理:使应用程序更好的使用原创 2015-07-23 17:12:55 · 3722 阅读 · 2 评论 -
高性能跨平台渲染引擎系列一: 跨平台渲染引擎简介
引言: 一直工作比较忙,很久就想写点东西做个备忘,拖延至今。本系列也期望督促自己坚持记录分享,文中如有笔误或者理解偏差,欢迎各位指正交流。也期望未来基于该系列文章的相关代码同步到git上,最终完成一款高性能跨平台3D渲染引擎; 何为3D渲染引擎,借用百度百科的解释吧: 3D引擎作为一个名词已经存在了很多年,但即使是一些专业的引擎设计师,也很难就它的定义达成一个共识。通...原创 2018-07-11 14:55:12 · 1471 阅读 · 2 评论