- 博客(24)
- 资源 (11)
- 收藏
- 关注
原创 CUDA结构体或类的传递内存实验
我想把指针传送到CUDA内存区域中,但是遇到了一定的问题,最终找到了解决方法,这里进行一下记录:一、普通传递没有任何问题:cudaMalloc((void**)&a_dev, 50 * sizeof(int));a_host = (int*)malloc(sizeof(int) * 50);for(inti = 0;i < 50;i++) a_host[i] = i;cudaMemcpy(a_dev, a_host, 50 * sizeof(int), cudaMem..
2020-06-29 18:26:59 1751
原创 CUDA定义在类内的数组内存拷贝和计算问题
CUDA在类内进行拷贝的内存,在外部无法进行计算?比如:#include "cuda_runtime.h"#include "device_launch_parameters.h"#include <stdio.h>#include <iostream>class myRandom {public: myRandom() { cudaMalloc((void**)&a_dev, 50 * sizeof(int)); a_host = (int*)
2020-06-29 11:36:18 405
原创 使用3Dmax做一个妹子 一 基本操作方法
使用3Dmax做一个妹子系列 见使用3Dmax做一个妹子首先可以从这里创建一个立方体,在图中通过鼠标设置立方体的长宽和大小。这个可以设置选中物体并移动。按下M键打开材质编辑器,位置如图所示,拖动一个标准色过去:右边属性框里可以改改名字:右键物体,转换为可编辑多边形。然后右键->Freeze Selection,再进行右键,选择:可以看到变为下面的样子:再去右面属性里往下拉,取消选择:就能得到硬边显示的效果:...
2020-06-28 16:02:55 642
原创 Unity菜单布局工具栏
使用Unity3D来设计游戏全部文章 见使用Unity3D来设计游戏菜单栏的东西基本上都是可以从别的地方进行设置的(比如在某处右键)。Window可以打开一些窗口,Help可以看一些内容和简介。在scene上右键,可以再添加一个观察窗口:点击下面三角形按钮可以运行游戏,再点击一下就取消运行。...
2020-06-23 16:14:54 1783
原创 Unity3D物体的使用
使用Unity3D来设计游戏全部文章 见使用Unity3D来设计游戏天知道我是多么想用可爱的美少女作为素材的,但是太贵了买不起啊(虽然淘宝有盗版的)。没办法,选个人物,emmmm,免费的基本上都有点歪瓜裂枣,没办法,这个还可以:下载然后导入。我们先来看看一些简单的三维物体:在图上分别按下鼠标 左 中 右 键就可以分别移动物体视野了。我们把自己的素材拖动到这里:注意调整一下方位,就可以显示:注意在asset里点击物体以后,这里有一些信息:以后用到..
2020-06-22 15:10:42 408
原创 Unity3D 导入资源
打开Unity3D的:window-asset store就会出来这样的界面:我们选择一个天空纹理,注意这里的标签只有一个,如果有多个就会显示所有标签的内容:找个比较小的免费的下载一下试试,比如这个:下载以后:点击import就会出现该窗口:然后再点击最底下的import:就导入到我们这里来了。从上面可以切换场景:...
2020-06-22 14:37:23 4308
原创 Unity 新建工程与基本操作
使用Unity3D来设计游戏全部文章 见使用Unity3D来设计游戏首先打开Unity ,按下New点击Create project以后创建文件夹:然后Unity界面是这个样子:这里可以改布局:我们可以改为默认布局。该布局下的assets里面可以创建一些资源,右键create—folder:将其修改名字,比如我们想建立一个Material材质文件夹,然后左键可以在里面创建一个材质。...
2020-06-21 22:41:58 1634
原创 《学一辈子光线追踪》 十 你的余生+极简后记
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术这本书的目的是显示一种组织基于物理渲染器的采样方法的所有数学i的细节。现在你可以探索很多不同的潜在途径。如果你想探索蒙特卡罗方法,可以研究双向和路径间隔的方法,比如Metropolis。概率空间不是立体角,而是路径空间,路径是高维空间中的多维点。不要让这吓到你——如果你能用一个数列来描述一个物体,数学家称它为所有可能的数列空间中的一个点。那不只是为了作秀。一旦你得到了这样一个干净的抽象,你的代码也可以变得干净。干净的抽象是编程的全部!如果你想做电..
2020-06-20 21:11:19 519
原创 《学一辈子光线追踪》 十 完成pdf管理
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术到目前为止,我已经使用color函数创建了两个硬编码的pdf:1、与光的形状有关2、与法向量和曲面类型相关的p1()我们可以将关于光的信息(或者我们想要采样的任何东西)传递到颜色函数中,我们可以向材质函数请求pdf(我们必须对它进行检测)。我们也可以请求hit函数或material类来提供是否有镜面反射向量。我们要考虑的一件事是像上漆的木材一样的材料,部分是理想的镜面(抛光)和部分漫反射(木材)。某些渲染器使材质生成两条光线:一条镜面反射..
2020-06-20 20:49:20 494
原创 《学一辈子光线追踪》 八点五 和 九 混合密度程序跟踪解读 加 一些架构决策
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术我们从 color 函数开始: if (depth < 50 && rec.mat_ptr->scatter(r, rec, albedo, scattered, pdf_val)) { ........ } else { return emitted; }当采样光线已经递归到50次或者打到光源时,返回emitted。如果小于50次时执行scattered程序,产生一个散射方向以及..
2020-06-20 02:55:00 401
原创 《学一辈子光线追踪》 八 混合密度
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术我们使用了一个与余弦θ相关的pdf和一个与光采样相关的pdf。我们想要一个总的pdf来结合这些pdf。一个常见的概率工具是把密度混合来形成一个混合密度。pdf的任何加权平均值都是pdf。例如,我们可以平均这两种密度:pdf_mixture(direction) = ½ pdf_reflection(direction) + ½ pdf_light(direction)我们该如何编写代码来实现这一点?有一个非常重要的细节,使这不如人们期望的那么容易..
2020-06-20 02:15:07 462
原创 《学一辈子光线追踪》 七 直接采样光
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术几乎均匀地在方向上采样的问题是,光的采样率不超过其他不重要的方向的采样率。我们可以使用阴影光线并分离出直接照明。但是,作为替代方法,我只会发射更多的采样光线到光源上。我们以后可以用它来向我们想要的任何方向发射更多的光线。很容易选择一个指向灯光的随机方向;只需在灯光上选择一个随机点并向该方向发送光线即可。但我们也需要知道pdf(方向)。那是什么?对于a区域的光,如果我们在该光上均匀采样,则该光表面上的pdf为1/a。但定义方向的单位球体区域上的pdf是..
2020-06-19 17:48:19 873
原创 《学一辈子光线追踪》 六 正交基
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术在最后一章中,我们开发了生成与日晷相对的随机方向的方法。我们要做的是基于任意曲面的法向量。正交正规基(ONB)是三个相互正交的单位向量的集合。笛卡尔xyz轴就是这样的一个ONB,我有时忘记了它必须坐在某个真实的地方,有真实的方向,才能在真实世界中有意义,而在虚拟世界中有一些虚拟的地方和方向。图片是相机和场景相对位置/方向的结果,只要相机和场景在同一坐标系中描述,一切都是可以的。假设我们有一个原点o和笛卡尔单位向量x/y/z。当我们说一个位置是(3,-..
2020-06-18 20:05:00 627
原创 《蒙特卡洛光线追踪》 随机方法 超详分析(数学+程序预警)
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术上一节说过,结束后会单独写一节关于前面所有知识的梳理和总结。这一节不可能会特别短,但很可能会特别长,因为以前的程序都写完了,这一节基本上不会写程序,而全部都是原理的详细分析(超级详细!)。就让我们做好心理准备,开始走入MC的世界。一、MC与积分首先还是我们要进行的积分:结果就是下图中蓝色区域的面积:其实也很好使用MC方法,产生一堆横坐标0-2,纵坐标0-4之间的随机数,然后判断其在蓝色区域还是黄色区域,然后根据比值计算出蓝色区..
2020-06-18 03:49:10 2755
原创 《学一辈子光线追踪》 五 产生随机方向
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术这一节结束后,我会对前面的关于概率和光线追踪的知识进行一下总结和归纳。在本章和下两章中,让我们加强理解和工具,找出哪个康奈尔盒子的渲染结果是正确的。我们先来看看如何生成随机方向,但为了简化,我们假设z轴是曲面法向,theta是与法向的夹角。我们将在下一章中把它们定向到曲面法向量。我们只讨论关于z的旋转对称分布,所以p(direction) = f(theta)。如果你有学过高级微积分,你可能记得在球坐标系的球面上 dA = sin(theta)*dt..
2020-06-17 03:44:17 630 1
原创 《学一辈子光线追踪》 四点五 代码对比分析
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术先粘贴一下以前的lambertian代码:class lambertian :public material {public: lambertian(texture*a):albedo(a){} virtual bool scatter(const ray& r_in, const hit_record& rec, vec3& attenuation, ray& scattered)const { vec3..
2020-06-16 16:38:29 380
原创 《学一辈子光线追踪》 四 重要性采样材料
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术在接下来的两章中,我们的目标是利用我们的程序向光源发送一束额外的光线,这样我们的图片噪声就不会太多了。假设我们可以使用pdf pLight(direction) 向光源发送一束光线。假设我们有一个与s相关的pdf,我们称之为pSurface(direction)。pdf 的一个优点是,可以使用它们的线性混合来形成混合密度,这也是pdf。例如,最简单的方法是:p(direction) = 0.5*pLight(direction) + 0.5*pS..
2020-06-16 15:10:15 717
原创 《学一辈子光线追踪》 三 光散射
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术这一小节全都是文字,但是比较重要。虽然之前在三维渲染 光能辐射基础三维渲染 BRDF双向反射分布函数三维渲染 相位函数三维渲染 体照明模型这几个章节也都很详细的描述过光学了,这里从概率的方面再进行描述。在这一章中,我们实际上不会实现任何东西。我们将在第四章中为我们的节目设置一个大的灯光变化。我们上一本书中的程序已经散射了表面或体积的光线。这是光与表面相互作用的常用模型。一种自然的建模方法是概率。首先,光线被吸收了吗?光散射..
2020-06-16 02:53:13 635
原创 《学一辈子光线追踪》 二点五 一维MC积分(二)
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术我们现在可以对以前的积分进行采样I = integral(x^2, 0, 2)我们需要解释x的pdf的不均匀性。如果我们样本太多,我们应该降低权重。pdf 是一个很好的度量方法,可以用来衡量正在进行的抽样工作有多少。所以权重函数应该与 1/pdf 成正比。实际上是1/pdf:#include <math.h>#include <stdlib.h>#include <stdio.h>#include ..
2020-06-15 01:24:14 424
原创 《学一辈子光线追踪》 二 一维MC积分(一)
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术积分是关于计算面积和体积的,所以如果我们想让第1章最大限度地混淆,我们可以将它以一个积分的形式组织起来。但有时积分是最自然、最干净的表达方式。渲染常常是这样一个问题。让我们看一个经典的积分:在计算机科学符号中,我们可以这样写:I = area( x^2, 0, 2 )我们也可以这样写:I = 2*average(x^2, 0, 2)我们也可以这样写:这表明了一种MC方法:#include <math.h>#..
2020-06-15 00:30:42 1122
原创 《学一辈子光线追踪》 一 引言和一个简单的蒙特卡洛程序
蒙特卡洛光线追踪技术系列见蒙特卡洛光线追踪技术引言:在一个周末的光线跟踪和光线跟踪:下周,你建立了一个“真正的”光线跟踪器。在本卷中,我假设您将从事与光线跟踪相关的职业,我们将深入研究创建非常严肃的光线跟踪器的数学。完成后,您应该准备好开始处理电影和产品设计行业中许多重要的商业光线跟踪器。在这本小册子中,我没有介绍很多东西;我只探讨了编写Monte Carlo渲染程序的多种方法中的一种。我不做阴影光线(相反,我使光线更有可能朝向灯光)、双向方法bidirectional methods、Me..
2020-06-14 21:19:18 730
原创 数学建模心得和建议:自然科学建模类
笔者在参加了多次数学建模后,大部分都能够得奖,但是有些也因为种种原因仅仅得到成功参与奖。每次比赛完我都会参考一下优秀论文,去研究自己与这些最佳论文之间的差别。在这里我总结一下:一、最佳论文很严谨?呸。在我对比分析了很多篇篇自然科学建模类的最佳论文后,我发现一个特点,就是里面出现了大量非常复杂而且诡异的公式,这些公式大概可以分为两类:有文献索引的 没有文献索引的其中有文献索引的公式,又分为如下两类:索引文献能找到相关内容的 索引文献和该公式毫无关系的(胡乱索引的)其中有百分之三十的复杂
2020-06-11 01:59:43 1171
图解TCP_IP第五版中文版
2018-11-24
怎么搭建opengl开发环境的讲解文档
2018-11-21
Opengl在VS2015的所有常用开发包
2018-11-21
Opengl中文版第三版
2018-11-21
thinking in C++ 英文版第二版
2018-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人