- 博客(70)
- 收藏
- 关注
原创 隐函数绘制及其显示其梯度场
Clear["Global`*"];f[x_, y_] := (1 (2 x^2 + y^2))/2;g1 = Grad[f[x, y], {x, y}]得到其梯度场函数:{2 x, y}绘制其梯度场:\[Rho]1 = StreamPlot[{g1[[1]], g1[[2]]}, {x, -5, 5}, {y, -5, 5}]绘制这个隐函数 现在结合起来看下效果...
2018-05-31 15:25:44 1332
原创 mathematica 导出pdf 带中文字体乱码问题原因及其解决方案
原因:主要是字体问题导致的,从原来的样式表继承一个新的样式表。将相应部分修改为中文字体样式。导出pdf的时候选择显示屏环境Printout,并选择这个新创建的样式就可以了。解决方案:将这个文件保存为CHDefault.nb 添加样式表使用这个就可以了。(* Content-type: application/vnd.wolfram.mathematica *)(*** Wolfram Note...
2018-05-26 10:35:48 3047 2
转载 VS每次编译都重新编译整个工程的解决方案
在使用VS2008编译C++程序的时候,每次修改工程中的某一个文件,点击“生成-仅用于项目-仅生成**”时,往往都是整个工程都需要重新编译一遍。由于这个工程代码量太大,每次编译完成都需要将近10分钟左右的时间编译(我的机器可是AMD X4 640 3G主频,4g内存,配置也不算太低)。最烦人的时候是当编译完了出错,修改了错误再次编译,浪费很多时间。那么怎么配置VS2008像VC6.0那样默认的可以...
2018-03-07 15:07:26 1550
转载 VS2015下解决:无法解析的外部符号 __imp___vsnprintf
解决:无法解析的外部符号 __imp___vsnprintf在vs2015工程选项,链接器附加依赖项里面添加legacy_stdio_definitions.lib即可。出现这个问题的原因是vs2015默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,所以要专门添加标准库文件来链接标准库中的函数。...
2018-03-07 10:34:39 1395
原创 mapbox glfw 几种默认样式
在mapbox - gl- native glfw-viewer 中按快捷键S。可以进行默认几种样式切换。光照样式:Dark 模式Satellite 模式:Satellite street 模式:Traffic day 样式:Traffic Night 样式:Street 模式:...
2018-03-01 17:11:17 1150
原创 c++ 一种给任意函数体加锁的方法
class MyClass { public: MyClass() = default; ~MyClass() = default; void funcA(int param) { withMutex([&] { std::cout << param + 2<< std::endl; }); } void func...
2018-02-27 16:23:05 3949
原创 使用Lamda表达式作为回调函数
class view { public: void setOnlineStatusCallback(std::function<void()> callback) { onlineStatusCall = callback; } void usecallback() { onlineStatusCall(); } private: std...
2018-02-24 15:22:24 1006
原创 libuv 简介
libuv is a multi-platform support library with a focus on asynchronous I/O. Itwas primarily developed for use byNode.js, but it’s also used byLuvit,Julia,pyuv, and others.FeaturesF
2018-02-05 14:21:46 311
原创 shader 开发工具之 glman简介
glman 的眼睛位置(0,0,0),lookat (0,0,-1)。glib file 文件描述:#设置透视投影 fov 角,以度为单位。Perspective 70Translate -13 0 0 # 移动场景远离视点。世界坐标系下。Vertex green.vert #使用的顶点着色器文件Fragment green.frag #使用的片元着
2018-02-03 20:00:51 2640 1
转载 move forward
根据std::move和std::forward不能做什么来熟悉它们是一个好办法。std::move没有move任何东西,std::forward没有转发任何东西。在运行期,它们没有做任何事情。它们没有产生需要执行的代码,一byte都没有。std::move和std::forward只不过就是执行cast的两个函数(实际上是函数模板)。std::move无条件地把它的参数转换成一个右值
2018-02-02 08:46:15 2539
原创 C plus pulse 11 (7)
void print(std::initializer_list<int> vals){ for(auto p= vals.begin();p!=vals.end();++p ){ std::cout<<*p;}}//—————————————————-print({1,2,3,4,5});explicit construct function if accept a
2018-01-31 22:18:51 251
原创 boost::enable_if
template class demo_class {}; template class demo_class>::type > { public: void print() { __FUNCTION__; } }; template class demo_class>::type> { public: void print() { __FUNCTION__; }
2018-01-31 14:07:19 266
翻译 fog bow 雾虹
雾虹(fogbow),俗称白色彩虹,这是一种与彩虹相似的天气现象,太阳光经由水分子反射和折射后形成。它的成因和彩虹相似,都是阳光被水滴反射后的产物,雾虹是由更小的水滴从更广的范围反射太阳光形成的。更多参考http://www.philiplaven.com/p2b.html
2018-01-26 22:07:33 535
翻译 极光
北极光也被称为北极光,在太阳风暴活跃的时候,天空在晴朗黑暗的夜晚出现在北极光的壮观的彩色显示器上。极光北极是以地磁北极为中心,最常见于北极圈之上。然而,展览偶尔会出现在美国北部的南部。同样的现象发生在南半球,被称为澳洲极光或南极光。极光像彩虹一样闪烁,或像窗帘一样悬挂,有时似乎几乎接触到地面。但实际的灯光在天空中产生的高度高于地球表面70至200公里(43至124英里),远高于飞机飞行。太阳风产生了
2018-01-26 08:08:08 351
转载 C++ 基础5
(转译)在C+11中,对于defaulted函数,编译器会为其自动生成默认的函数定义体,从而获得更高的代码执行效率,也可免除程序员手动定义该函数的工作量。C++的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。这些类的特殊成员函数负责创建、初始化、销毁,或者拷贝类的对象。如果程序员没有显式地为一个类定义某个特殊成员函数,而又需要用到该特殊成员函数时,则
2018-01-24 15:30:20 205
原创 windows 批处理 2
REM 实现对文件的重命名rename %EXT%\cmake-3.9.6-win64-x64 cmakeREM 关闭回显@echo offREM 调用其它程序 call "build.bat" NOPAUSE REM 设置当前目录set CURDIR=%~dp0REM 如果存在这个文件夹,那么删除这个文件夹if exist %CMAKEFOLDER%
2018-01-24 11:50:59 235
原创 windows 批处理 实现在后台开启自动下载任务
REM rem关键字为注释的意思REM 设置变量值 为当前批处理文件所在目录下的external文件夹set EXT=%~dp0externalREM 设置消息回显,%EXT%为引用变量名echo Installing dependencies into %EXT%REM 如果不存在这个文件夹,就创建这个文件夹。if not exist %EXT% md %EXT%
2018-01-24 11:27:23 975
原创 C++ 基础4
std::functionstruct Foo { Foo(int num) : num_(num) {} void print_add(int i) const { std::cout << num_ + i << '\n'; } int num_; }; void print_num(int i) { std::cout << i << '\n'; } struc
2018-01-19 17:26:45 215
原创 C++ 基础3
别名系统当遇到某个软件模块c++标准比较高,不支持某个特性的时候,而另外一个库刚好有类似的功能,用最少的代码实现兼容。比如文件,vs2017都不支持。这个时候可以使用boost库来进行模拟。#pragma once#include namespace std{ namespace experimental { template using optional = boost
2018-01-19 15:55:18 283
原创 C++ 基础 2
可变参数模板template<class... Args>void emplace(Args&& ... args){}元数据的声明typedef int meta_dat1;using meta_data1 = int;元函数的定义template<int N, int M>struct meta_func{ static const int value = N+M;};cout
2018-01-18 18:27:43 173
翻译 Aerial perspective 大气透视
空中透视或大气透视是指从远处观看大气对物体外观的影响。随着物体与观看者之间的距离增加,物体与其背景之间的对比度降低,并且物体内的任何标记或细节的对比度也降低。物体的颜色也变得不那么饱和,并转向背景颜色,通常是蓝色,但在某些情况下可能是某种其他颜色(例如在日出或日落时,远处的颜色可能会转向红色)。强调减少对比度与模糊图像是不一样的。模糊是通过仅降低高空间频率的对比度来实现的。空中透视降低了所有空间频
2018-01-18 06:37:32 1829
原创 C++ 基础知识 (1)
template struct min { static std::size_t const value = a < b ? a : b; }; template struct alignment_of { static std::size_t const value = test::min< sizeof(T1), sizeof(T2) >::value
2018-01-17 17:08:50 210
转载 mie 散射理论
由基础物理知识可知,光与物质的相互作用会引起光的吸收、色散和散射现象。所谓光 的散射可以这样理解:当光束通过存在不均匀性的透明或半透明介质(比如硅胶中悬浮着荧 光粉),光线就会从各个方向散开。1908年G.Mie最先解出了入射到悬浮着球形粒子的介质 的平面光波的麦克斯韦方程组的严格解,关于这方面的讨论就是Mie散射理论的主要内容。 按照Mie散射理论,第一,当散射粒子的半径远小于入射光的波长时,总
2018-01-16 16:15:59 11623
转载 瑞利散射 Rayleigh theory
一种光学现象,属于散射的一种情况。又称“分子散射”。粒子尺度远小于入射光波长时(小于波长的十分之一),其各方向上的散射光强度是不一样的,该强度与入射光的波长四次方成反比,这种现象称为瑞利散射。中文名瑞利散射外文名Rayleighscattering相关术语大气散射学科分支大气物理学描述瑞利散射规律是由英国物理学家瑞利勋爵(Lord Rayleigh)于190
2018-01-16 16:14:44 8106
原创 C++ 模板萃取的应用
优点:1处修改,到处使用。2.编译器间编译,运行效率更高。#define PRINT_TRACE (std::cout << __FUNCTION__ << __LINE__ << std::endl) class FRHIResource{public: FRHIResource() { PRINT_TRACE; } ~FRHIResource() { PRINT_TRAC
2018-01-14 11:56:08 420
原创 UE4 延迟着色之大气雾 原理流程(1)
函数定位:FDeferredShadingSceneRenderer::RenderAtmosphere流程解析:1.绘制一个屏幕四边形。2.设置当前的渲染帧缓存对象。3.设置视口。4.获取顶点着色器 FAtmosphericVS5.获取像素着色器 TAtmosphericFogPS6.设置着色器参数。7.渲染。opengl实现将在下一次讲解。
2018-01-13 21:40:34 2064
原创 opengl glsl 之绘制简单天空盒(1)
这个天空盒demo主要利用采集立方体纹理,贴合到屏幕四边形上。天空盒的专业术语叫立体贴图。就是在单位立方体外表面贴上6张纹理。在立方体的中心点向外的各个方向为纹理的采样坐标。这里绘制一个屏幕四边形,再经过反向变换,将NDC坐标空间变换到裁剪空间,再由裁剪空间变换到变换到模型视图空间。将视图空间点的方向作为立体贴图的纹理采样坐标,采样立方体纹理。这里程序默认朝向-Z轴,所以实验我们可以看
2018-01-13 17:04:17 2953 1
转载 Vector Tiles 矢量瓦片
Vector TilesVector tiles make huge maps fast while offering full design flexibility. They are the vector data equivalent of image tiles for web mapping, applying the strengths of tiling – developed
2018-01-09 13:56:21 3823
原创 glsl应用 计算着色器 之 简单的图像写入
这个例子主要简单的往图像中写入数据。然后将写入的数据进行渲染。 在计算着色器中,对每个本地工作组的每个运行单元写入其在本地工作组的位置进行归一化,然后将这个数据作为输出颜色的x,y通道。所以对一个本地工作组内计算的片元颜色变化规律为: 这个计算着色器程序的整体任务分配布局为: 最后输出的效果为: 总结: 可以看到有颜色的地方为计算着色器工作的区域。每个小块为一个本地工作组。每个计算
2018-01-06 16:57:01 725
原创 地理空间的简单定义
一般指经过投影变换,在笛卡尔坐标系下表示的地球表面特征空间。地理世界以实体进行单位组织,每个实体具有时间,空间,和实体自身属性和其它对象关联关系属性。绝对空间表示对象在世界坐标系下的实际位置。而相对空间主要描述不同实体之间的空间位置关系。 特征实体:{形状,属性,时序信息} 地理信息系统处理的是离散的数据,系统主要对分对地理空间信息进行分析和可视化两部分。可视化部分主要用到图形学,而分析主要用到
2018-01-06 06:14:02 2302
原创 glsl内置函数 1
Radians degrees sinh cosh exp e^x exp 2^x log2 log sqrt inversesqrt abs sign floor ceil trunc 2.1–>2 -2.5—>-2 round 返回一个最接近x的整数值。 Ceil fract 取小数部分 Mod x = y*(x/y) modf(x,out i) re
2018-01-05 21:46:50 873
原创 glsl 可编程着色器可能的应用范围
现在可编程流水线还能处理所有像素、顶点、纹理的位置、色调、饱和度、明度、对比度并实时地绘制图像。着色器还能产生如模糊、高光、有体积光源、失焦、卡通渲染、色调分离、畸变、凹凸贴图、边缘检测、运动检测等效果。这些应用领域将会在之后逐渐推出,敬请关注。
2018-01-04 22:14:26 376
原创 glsl 计算着色器基础 一
计算着色器主要是利用着色器的资源来处理一些与渲染不相关的其它计算工作。 任务以组为单位执行,称为工作组。拥有邻居的工作组称为本地工作组,本地工作组组成最大的组称为全局工作组。计算着色器会被全局工作组中的每一个本地工作组的每个单元调用一次,执行的单元之间可以通过变量和显存进行通信,并且可以通过同步操作进行同步。 本地工作组大小设置: local_size_x /y /z 全局工作组的布局,g
2018-01-04 22:09:16 972
原创 opengl Order-Independent Transparency 顺序无关的透明 (一)
Order-independent transparency (OIT) is a class of techniques in rasterisational computer graphics for rendering transparency in a 3D scene, which do not require rendering geometry in sorted order for
2018-01-02 10:05:59 4677 1
原创 glsl 高性能原子计数器
主要讲解知识点: 1.GL_ATOMIC_COUNTER_BUFFER 使用。 2.采用原子计数器记录片元中的红色通道分量大于绿色分量的个数。 效果验证图: 可以看到统计结果,并且得出当我们放大图片的时候,处理的片元数量是增大的,缩小的时候GPU处理的片元数量减少。实现: 初始化原子缓存对象glBindBuffer(GL_ARRAY_BUFFER, 0); GLuint *co
2017-12-29 09:59:04 654
原创 glsl 原子操作 基础(一)
layout( r32ui) uniform uimage2D overdraw_count;void main(){ uint count = imageLoad(overdraw_count,ivec2(gl_FragCoord.xy)); count = count + 1; imageStore(output_buffer, ivec2(gl_FragCoord.
2017-12-25 10:15:20 1186
原创 opengl glsl 几何着色器 1
几何着色器的作用是: 1.增强多顶点的访问属性。 2.控制输出数据的数量。 3.在管线中改变几何体类型。 4.将顶点数据流切分为多个子数据流。 使用方法: 设置输入图元类型,输出图元类型,以及输出的顶点数量。 layout(triangles) in; layout(triangle_strip,max_vertices = 3) out; 几何着色器的输出只能为条带。 poin
2017-12-24 12:35:49 824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人