- 博客(26)
- 资源 (27)
- 问答 (1)
- 收藏
- 关注
原创 OpenGL API - glMapBuffer - 可用于获取缓存对象指针
因为有需要对网格顶点属性实时更新,所以我之前使用的 API 是:glBufferData// method 1:glBindBuffer(GL_ARRAY_BUFFER, vbos[(int)MeshVboType::POSITION]);glBufferData(GL_ARRAY_BUFFER, arr->bytes_size(), arr->ptr(), _dynamic ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW);checkGLError();但是从
2020-07-31 11:59:07 1325
原创 LearnGL - 14 - MultiLight - 多光源
文章目录C++ 应用层的代码改动和核心代码修改前修改后Shader - my_lighting.glsl 核心改动改动前改动后效果放置多个光源效果添加了灯光 Gizmos 显示控制添加了渲染队列控制渲染状态整体操作演示ReferencesLearnGL - 学习笔记目录前些篇:LearnGL - 11.1 - 实现简单的Gouraud-Phong光照模型LearnGL - 11.2 - 实现简单的Phong光照模型LearnGL - 11.3 - 实现简单的Blinn-Phong光照模型Lea
2020-07-31 09:43:56 505
原创 LearnGL - 13.1 - SpotLight - 聚光灯
文章目录演示完整 ShaderSpot Light Gizmos - 聚光灯的 Gizmos 绘制C++ 生成网格代码LearnGL - 学习笔记目录前一篇:LearnGL - 13 - PointLight - 点光源 实现了 点光源 的最简单的着色方式这篇:我们尝试给 “聚光灯” 类型的光源本人才疏学浅,如有什么错误,望不吝指出。其实 聚光灯 与 点光源 很类似,以为区别比较大的是: 聚光灯 有光照的张角范围,而不像 点光源 的张角是全方位的范围。所以相比上一篇来说,代码的添加与调整
2020-07-29 22:04:05 769
原创 C++ “void std::sort(const _RanIt,const _RanIt)”: 应输入 2 个参数,却提供了 3 个 - 已解决
在使用 #include<algorithm> 中的 sort 函数遇到 “void std::sort(const _RanIt,const _RanIt)”: 应输入 2 个参数,却提供了 3 个 之类的错误问题的出现如下:有一个 Camera 类下有一个函数声明:bool rendererCmp(MeshRenderer* a, MeshRenderer* b); 注意不是静态(static)的使用 sort 中第三个参数使用该方法: // 排序 render
2020-07-29 18:57:44 2240
原创 LearnGL - 13 - PointLight - 点光源
文章目录点光源与方向光比较光衰减距离衰减作用范围衰减对应的 Inspector 面板参数演示光源的切换ShaderReferencesLearnGL - 学习笔记目录前些篇:LearnGL - 11.1 - 实现简单的Gouraud-Phong光照模型LearnGL - 11.2 - 实现简单的Phong光照模型LearnGL - 11.3 - 实现简单的Blinn-Phong光照模型LearnGL - 11.4 - 实现简单的Flat BlinnPhong光照模型这些演示光照计算中,都是
2020-07-28 17:28:01 712
转载 投影矩阵的推导(Deriving Projection Matrices)
文章目录概述: 什么是投影?正交投影(Orthographic Projection)透视投影(Perspective Projection)总结原文:Deriving Projection Matrices在学习 LearnGL - 学习笔记目录 之前找过一些关于 透视矩阵 的教程,发现有很多写的不错的文章,如:OpenGL Transformation,但这里我只列出一个写的 最清晰 的,就上面原文的内容 Deriving Projection Matrices,因为作者将每一项的推导过程写的相
2020-07-27 17:54:42 949
原创 LearnGL - 12 - GLSL include - GL_ARB_shading_language_include (Extensions扩展) - 各种踩坑
文章目录GL_ARB_shading_language_include 不支持?留意使用的显卡是否集成显卡设置使用独立显卡References在 GLSL 编写 shader 时,发现不能直接使用 #include"file_name.xxx"写 shader 起来相当麻烦然后我还想着去添加一下 GLSL Include 的功能GL_ARB_shading_language_include 不支持?结果发现 OpenGL 4.5 竟然不支持 GL_ARB_shading_language_incl
2020-07-24 18:20:51 1595 6
翻译 extensions/ARB/ARB_shading_language_include.txt API 中文翻译
原文:extensions/ARB/ARB_shading_language_include.txtOverview - 概述This extension introduces a #include GLSL directive to allow reusingthe same shader text in multiple shaders and defines the semanticsand syntax of the names allowed in #include directive
2020-07-24 08:38:38 492
原创 LearnGL - 11.5 - 矩阵04 - 法线从对象空间变换到世界空间
文章目录Unity 中的处理OpenGL 处理总结ReferencesUnity 中的处理在 Unity ShaderLab 中,你可能会看到内置的函数:// Transforms normal from object to world spaceinline float3 UnityObjectToWorldNormal( in float3 norm ){#ifdef UNITY_ASSUME_UNIFORM_SCALING return UnityObjectToWorldDir
2020-07-22 18:33:35 767 2
原创 LearnGL - 11.4 - 实现简单的Flat BlinnPhong光照模型
文章目录GLSL flatFlat 风格ShaderReferencesLearnGL - 学习笔记目录前些篇:LearnGL - 11.1 - 实现简单的Gouraud-Phong光照模型LearnGL - 11.2 - 实现简单的Phong光照模型LearnGL - 11.3 - 实现简单的Blinn-Phong光照模型了解了 Gouraud-Phong、Phong、Blinn-Phong 光照模型的基本认识。这篇:我们将对 Flat Blinn-Phong 光照模型实现一个简单的实现
2020-07-21 15:06:52 466
原创 GLSL 中实现类似 Unity nointerpolation
文章目录Unity CG nointerpolationUnity Surface Shader 不支持GLSL 中实现类似的使用 flat 关键字GLES 2.0 没有不支持使用 ddx, ddy 来实现ReferencesUnity CG nointerpolation在 Unity 中我们可以在 VS 中对某个顶点传到 FS 的数据不进行插值,可以指定 nointerpolation 关键字即可,如:struct v2f { float4 vertex : SV_POSITION; fl
2020-07-21 14:42:08 649
原创 LearnGL - 11.3 - 实现简单的Blinn-Phong光照模型
文章目录Blinn-PhongPhong 的高光计算量Blinn-Phong 的高光计算量在 GGB 看看数值效果Blinn Phong in vsBlinn Phong in fs运行效果气球猫的效果环境光Phong 中环境光效果稍微调整一下环境光的处理完整的气球猫 三种 ShaderPhong ShaderGouraud Phong ShaderBlinn Phong ShaderLearnGL - 学习笔记目录前些篇:LearnGL - 11.1 - 实现简单的Phong光照模型LearnG
2020-07-21 11:05:27 431
原创 LearnGL - 11.2 - 实现简单的Phong光照模型
文章目录Phong、Gouraud-Phong 的区别LearnGL - 学习笔记目录前一篇:LearnGL - 11.1 - 实现简单的Phong光照模型 了解了 Phong 光照模型的基本认识。这篇:我们将对 Gouraud-Phong 光照模型实现一个简单的实现本人才疏学浅,如有什么错误,望不吝指出。Phong、Gouraud-Phong 的区别在前一篇了解到 Phong 的实现,主要都是依赖 Vertex Shader(顶点着色器)阶段来计算的。而 Gouraud-Phong 比较大
2020-07-21 11:05:20 467
原创 LearnGL - 11.1 - 实现简单的Gouraud光照模型 & dot 点积/点乘的作用
文章目录PhongReferencesLearnGL - 学习笔记目录前一篇:LearnGL - 11 - 光与颜色前置篇这篇:我们将对 Phong 光照模型实现一个简单的实现本人才疏学浅,如有什么错误,望不吝指出。Phong在百度百科中也有简介:Phong光照模型Phong 着色器模型,中文也叫:冯氏着色法,该光照模型是很简单的光照模型,只有:环境光、漫反射、高光。环境光 用于模拟物体反射周围的物体颜色,在 phong 中,只是纯颜色值作为环境光直接叠加。漫反射 用于模拟光入射到物体
2020-07-21 11:05:10 2023
原创 GLSL 中奇怪的问题 - [已解决] - 自己马虎的问题
今天在调试 GLSL 是,发现有些光照效果就是不对,然后我发现,传入的都是没有问题的。直到我将法线变换的代码该写一下,就没有问题的。vec3 ObjectToWorldNormal(vec3 n) { // return normalize((IT_mMat * vec4(n,0))).xyz; // 等价于:transpose(I_mMat) * vec4(n, 0) // 下面 normalize(mat3(IT_mMat) * n) 的结果才是正确的, normalize((IT_mMat *
2020-07-20 19:48:47 284
原创 LearnGL - 11 - 光与颜色前置篇
文章目录光子眼球大脑接收物体颜色总结ReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。说到颜色,就会联系到光。个人理解:颜色,就是我们的大脑对某种生物信号的识别,这种生物信号是由:眼球感光后的视网神经编码的生物电信号。分不同光波编码可见光大脑接收解码光子眼球大脑接收呈像光子光是什么?是如何产生的?用通俗之言解读,让你瞬间走进光的世界 - 说的是能量溢出也就是说光子是基本上是从一个物质上能量溢出后而喷发出来的微粒子而光子是按一定的波形运动的微粒子
2020-07-16 11:34:03 512
原创 C++ 宏字符串拼接、宏参数拼接成符号、宏嵌套、宏变长参数
// jave.lin#include<iostream>#define __TO_STR(f1,f2) "__"#f1"_"#f2"__" // 字符串拼接#define __CONNECT__FLAG(f1, f2) __##f1##_##f2##__ // 宏参数拼接成符号#define __CALL(f1, f2) __CONNECT__FLAG(f1, f2) // 宏嵌套#define __CONNTECT__ARGS(...) (__VA_ARGS__) // 宏变
2020-07-13 16:23:23 9405 1
原创 C++ 统一管理对象的删除,使用指针的指针**,或是指针的引用*&
懒得动写字了,直接贴多一些代码吧。主要是使用 指针的指针 或是 指针的引用,这里使用的是后者 指针的引用,因为这样函数的外部调用和内部代码编写起来会友好一些。指针的引用 只要考虑使用起来会比较安全一些,毕竟 引用参数(实参) 是必须传入一个 左值,就是要有一个指针对象传入,不能留空。简单的测试// jave.linvoid my_alloc(int*& ptr_ref) { ptr_ref = new int(99);}void my_free(int*& ptr_re
2020-07-12 00:17:50 742
原创 C++ 编译错误:LNK 2019
错误提示LNK 2019 错误,其实早找我之前就遇到过:C++ Book Note - LNK 2019严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2019 无法解析的外部符号 “public: __thiscall my_util::ReferCounter::ReferCounter(void)” (??0?KaTeX parse error: Expected group after '_' at position 71: …c: static void _̲_cdecl my
2020-07-10 21:57:45 4076
原创 C++ std::map 与 std::unordered_map 的 key 为 字符串的一些问题
最近在学习 C++ 的一些基础知识,发现 std::map 与 std::unordered_map 的 key 为 字符串 的一些问题,不知道是我使用姿势问题,还是其他的,如有大神熟悉,望不吝指正。目测内部对 字符串的 hash 计算出了问题?但是我怎么都不相信,毕竟这是经历了多少年的标准库了,而我现在才接触而已,我觉得 100% 是我的 使用姿势不对 的问题。那么看看我是如何测试的。先插入数据:using _t = std::map<const char*, int>;...
2020-07-10 20:26:44 4356 2
原创 LearnGL -10 - 添加各种封装便于后续管理、添加Hierarchy、Inspector 面板
文章目录Camera RenderLayer - 相机的渲染对象的层级设置GameObject Layer - 游戏对象的层级设置MeshFilter inspector - MeshFilter 可以查看网格的一些信息Material - 使用的材质预览Hierarchy - 层级对象的面板功能总结LearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上些篇:LearnGL - 09 - Include IMGUI - Dear ImGui - 添加Dashboard、Deb
2020-07-10 19:49:46 383
原创 C++ 模板成员的非指针类型的成员初始化
留意上面的图片中 底部的蓝底白字 的警告内容。因为类型是不确定的,所以初始化也比较麻烦的。不过我们也可以使用 T* 指针类型的来初始化为 NULL / nullptr下面测试代码:// jave.lin - testing for template_type_member_init#include<iostream>#include<string>template<typename T>class Test {public: // T te.
2020-07-10 18:11:48 310
原创 C++ 类之间相互引用导致编译错误的问题
C++ 的编译器提示报错 XXXX 定义不存在导致这个原因是因为我在写两个类的时候,他们有相互引用,而这种引用关系,在某些功能是无法避免的,以前用C#的时候是不会有这种问题,编译器帮我们处理了很多这些问题,但在C++中就需要自己处理了。错误示例如下:先有一个头文件GameObject.h// jave.lin// GameObject.h#ifndef _GAMEOBJECT__H_#define _GAMEOBJECT__H_#include"Component.h"class Ga
2020-07-07 12:30:51 1072
原创 LearnGL - 09 - Include IMGUI - Dear ImGui - 添加Dashboard、Debugging Panel
文章目录Dashboard - 仪表板CodeContextMenu - 上下文菜单/右键菜单Debugging Panel - 调试面板Shortcuts - 快捷键Informations - 其他信息Time - 时间相关的Draw State - 绘制状态Camera - 相机Reset - 重置Enabled Camera Control - 启用相机控制Transform - 变换CodeReferencesLearnGL - 学习笔记目录本人才疏学浅,如有什么错误,望不吝指出。上些篇:
2020-07-03 15:51:52 1589
原创 IMGUI 系统 - Dear ImGUI
简单介绍因为我在写 LearnGL 系列笔记的时候,发现没有 GUI 可以用,好蛋疼,然后在 GitHub 上找到一个叫:Dear ImGui,这个GUI系统对我来说,太太太完美了,它是用 C++ 编写的一个 GUI 系统。看了下面的 案例截图 你会发现,原来以前看到的一些大厂的各种 DEMO,或是一些软件原来就是用 Dear ImGui 制作的,Vulkan、OpenGL的一些示例,还有如果你使用过 Unity 的旧版的 GUI 系统,你就会发现 Unity 的 GUI 接口设计是参考 Dear Im
2020-07-03 14:54:34 23261 8
翻译 Introduction to Turing Mesh Shaders
顺便一提:UE5 中的 Nanite 技术,虚拟多边形,官方暂时也未公布技术细节,说明几何体可以不限制顶点数量、多边形的数量,可以做到非常密集的的数量,密集到一个像素还可以容纳到数个多边形。目前我也完全不知道是怎么个思路,TQL。多人认为 Nanite 是用 Mesh Shader 来实现的::如何评价虚幻5引擎的Nanite虚拟微多边形几何体技术?。技术不断在升级改革(科技服务在升级、在变化)。唯独不变的还是数学的内容,所以说,数学的魅力有多大(运算模型不变)。Mesh Shader 是201
2020-07-01 19:19:27 1547 1
正则表达式教程World2007版
2011-12-29
原创:C# xna 3.1 小游戏 Beta 1.1 已完成装备系统
2011-04-18
原创:C# xna 3.1 小游戏 Beta 1.0
2011-04-14
WebCrack 4.0 教程DOC
2010-11-29
Jave_Study_08_KeysRotateYXAxis C# + Managed DirectX
2010-08-21
Jave_Study_07_RotateTriangleContinuously C# + Managed DirectX
2010-08-20
Jave_Study_06_RotateTriangle C# + Managed DirectX
2010-08-20
Jave_Study_05_WVPP_App C# + Managed DirectX
2010-08-20
Jave_Study_04_DrawByVertexBuffer C# + Managed DirectX
2010-08-19
Jave_Study_03_DrawPointLineTriangle C# + Managed DirectX
2010-08-19
Jave_Study_02_DrawTriangle C# + Managed DirectX
2010-08-19
Jave_Study_01_CreateDeviceAndRender C# + Managed DirectX
2010-08-19
C# NPOI FarPoint Win Spread 报表制作工具
2010-04-28
C# Socket ET 聊天系统之 客户端 (新手入门级)
2010-04-28
C# Socket ET 聊天系统之 毕业论文 (新手入门级)
2010-04-28
C# Socket ET 聊天系统之 数据库 (新手入门级)
2010-04-28
C# Socket ET 聊天系统之 服务端 (新手入门级)
2010-04-28
高仿WinXp标准计算器.
2009-09-29
C# 高仿WinXP计算器四则运算,附加公式,算式功能.
2009-09-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人