自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hunter_wyh

它山之石,可以攻玉。

  • 博客(169)
  • 资源 (6)
  • 收藏
  • 关注

原创 Lua源代码学习(一)源代码编译

程序入口打开lua5.4.3的源代码,发现有两个入口文件lua.c 解释器luac.c 编译器创建项目我们创建一个新的项目,然后把我们的代码拖拽到项目解决方案中。编译编译时两个入口文件,只保留一个,不然会报错。把lua.c的main方法注释掉,编译的exe就是解释器,可以自己改为为lua.exe同理,把luac.c的main方法注释掉,编译的exe就是编译器,可以自己改名为luac.exe其他代码里有两个main如何处理?方法1 注释另一个main方法2 在一

2022-02-11 14:03:48 1049

原创 Lua大整数四则运算

Lua 实现 大整数 四则运算:加减乘除

2021-12-23 20:58:38 592 1

原创 Lua大整数练习

—思路—用一个列表保存数字值—符号: 用一个字段表示正负符号—进制: 目前只考虑支持10进制, 不考虑2/8/16进制等—精确度: 不考虑小数点, 向下取整截取—压位最大值: 理论上操作系统(64\32位)与Lua版本可能影响最大值;— 如果要计算最大值,只要使用循环一直把数字增加到溢出,溢出前的值就是最大值;— 在新的版本上会有math.maxinteger字段表示最大值;— 我们暂且认为10^8是最大的整数值吧;(因为太长会被用e显示, 不方便查看);也就是

2021-11-23 18:53:36 599 1

原创 code nice

编程语言python内存管理python小数据池,代码块的最详细、深入剖析总结:如果在同一代码块下,则采用同一代码块下的换缓存机制。 如果是不同代码块,则采用小数据池的驻留机制。

2021-08-27 11:53:01 326

原创 Learn OpenGL - 名词解析

基本名词VBOVAOEBO渲染管线ShadervertextShaderfragmentShaderTexture坐标系统局部空间世界空间观察空间裁剪空间屏幕空间为了将坐标从一个坐标系变换到另一个坐标系,我们需要用到几个变换矩阵,最重要的几个分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。局部坐标是对象相对于局部原点的坐标,也是物体起始的坐标。下一步是将局部坐标变换为世界空间坐标,世界空间坐标是

2021-08-11 00:01:25 304

原创 Learn OpenGL - Texture 调整位置

texture(texture2, vec2(1.0 - TexCoord.x, TexCoord.y))可以让纹理x坐标翻转#version 330 coreout vec4 FragColor;in vec3 ourColor;in vec2 TexCoord;uniform sampler2D texture1;uniform sampler2D texture2;void main(){ FragColor = mix(texture(texture1, TexCoor

2021-08-10 23:08:54 222

原创 Learn OpenGL - Texture 混合

vs#version 330 corelayout (location = 0) in vec3 aPos;layout (location = 1) in vec3 aColor;layout (location = 2) in vec2 aTexCoord;out vec3 ourColor;out vec2 TexCoord;void main(){ gl_Position = vec4(aPos, 1.0); ourColor = aColor; TexCoord = ve

2021-08-10 22:44:55 174

原创 Learn OpenGL - Shader变灰

const char *fragmentShaderSource = "#version 330 core\n" "out vec4 FragColor;\n" "in vec3 ourColor;\n" "in vec2 TexCoord;\n" "uniform sampler2D mytexture;\n" "void main()\n" "{\n" " vec4 col = texture2D(mytexture, TexCoord);\n" " float grey

2021-08-10 00:07:02 173

原创 Learn OpenGL - 使用纹理

#include <iostream>#include <cmath>// GLEW#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>// std#define STB_IMAGE_IMPLEMENTATION#include "stb_image.h"void framebuffer_size_callback(GLFWwindow* window, int width, int h

2021-08-08 23:28:07 123

原创 Learn OpenGL - 三角形规则运动

根据uuniform 进行运动const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "layout (location = 1) in vec3 aColor;\n" "uniform vec3 deltaPos;\n" "out vec4 vertexColor;\n" "void main()\n" "{\n" " gl_Positio

2021-08-08 15:35:34 175

原创 Learn OpenGL - 修改顶点着色器让三角形上下颠倒

其实只要y坐标*-1就行#version 330 corelayout (location = 0) in vec3 aPos;layout (location = 1) in vec3 aColor;out vec3 ourColor;void main(){ gl_Position = vec4(aPos.x, -aPos.y, aPos.z, 1.0); // just add a - to the y position ourColor = aColor;}例子

2021-08-08 13:25:09 447

原创 Learn OpenGL - 使用更多的数据(位置+颜色)

给顶点数据增加更多的数据,如位置+颜色修改顶点数据修改顶点着色器修改片段着色器分两次给位置、颜色分配不同的VAO位置glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), (void*)(3*sizeof

2021-08-08 11:51:41 213

原创 Learn OpenGL - 使用Uniform从CPU向GPU着色器发送数据

#include <iostream>#include <cmath>// GLEW#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void processInput(GLFWwindow *window);int main(void){

2021-08-08 01:52:19 304

原创 Learn OpenGL - 从顶点着色器向片段着色器发送数据

在顶点着色器中设置了颜色,传递到片段着色器中#include <iostream>#include <cmath>// GLEW#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void processInput(GLFWwindow *win

2021-08-08 01:38:08 322

原创 Learn OpenGL - 分别给两个三角形使用不同Shader

#include <iostream>#include <cmath>// GLEW#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void processInput(GLFWwindow *window);int main(void){

2021-08-08 01:22:59 183

原创 Learn OpenGL - 创建相同的两个三角形(使用EBO)

float vertices[] = { -0.5f, 0.0f, 0.0f, // left 0.0f, 0.0f, 0.0f, // right -0.25f, 0.3f, 0.0f, // top 0.5f, 0.0f, 0.0f, // left 0.25f, -0.3f, 0.0f, // top }; unsigned int indices[] = { 0, 1, 2, // 第一个三角形 1, 3, 4 // 第二个三角形

2021-08-07 01:26:15 133

原创 Learn OpenGL - 创建四方形(使用EBO)

#include <iostream>#include <cmath>// GLEW#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void processInput(GLFWwindow *window);int main(void){

2021-08-07 01:20:50 147

原创 Learn OpenGL - 创建相同的两个三角形(使用VAO&VBO)

#include <iostream>#include <cmath>// GLEW#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void processInput(GLFWwindow *window);int main(void){

2021-08-07 01:07:48 280

原创 Learn OpenGL - 创建三角形 (使用VBO&VAO)

#include <iostream>#include <cmath>// GLEW#define GLEW_STATIC#include <GL/glew.h>// GLFW#include <GLFW/glfw3.h>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void processInput(GLFWwindow *window

2021-08-06 00:49:53 167

原创 Learn OpenGL - 使用GLEW

glew是OpenGL的图形接口,类似的有glut、glad去官网下载文件解压文件到本地我下载到的是glew2.1,解压到项目目录中把目录名glew-2.1.0 改为 GLEW (方便以后升级版本)添加到工程包含头文件:添加glew32s.lib所在目录:链接静态库glew32s.lib:增加使用宏定义增加宏GLEW_STATIC 不然用不了...

2021-08-03 00:33:36 307

原创 Learn OpenGL - 画一个三角形

建立在上一节的准备上这次我们只需要在主循环增加以下几行就可以画出一个三角形 glBegin(GL_TRIANGLES); glVertex2f(-0.5f, -0.5f); glVertex2f(0.0f, 0.5f); glVertex2f(0.5f, -0.5f); glEnd();

2021-08-02 01:59:18 77

原创 Learn OpenGL - 搭建项目

使用VS 新建空项目我用的是2017 创建一个空的测试文件 测试能正常运行C++按F5有正常输出下载GLFW根据你生成的应用程序的目标平台选择一个编译好的二进制文件就好。我这里选择32位。(当然你也可以使用源码进行编译。)下载后解压是这样的。选择你自己的版本,我是用2017。将GLFW文件保存到项目里创建一个目录Dependencies\GLFW 保存 上面步骤解压得到的include 和 lib-vc2017将GLFW 包含链接到工程里包含:链接:..

2021-08-02 01:39:46 101

翻译 GPA-游戏优化方法论

游戏优化方法论设定你的绩效目标一般优化工作流程英特尔工具如何提供帮助在你开始之前识别有问题的场景确定游戏受限于CPU还是GPU如果游戏受 CPU 限制如果游戏受 GPU 限制平衡游戏效果和性能当没有明确的方向时,优化游戏是一项艰巨的任务。如果没有任何起始信息,甚至很难确定从哪里开始。了解如何使用各种英特尔性能分析工具以清晰、系统的方式优化您的游戏。设定你的绩效目标严格来说,您可以无休止地优化任何软件,而在优化应用程序的同时,性能收益与时间和精力的比率不断下降。因此,有必要设定一个明确的性能目标,并在达

2021-07-15 17:31:13 641

翻译 GPA-英特尔® 图形性能分析器简介

GPA-英特尔® 图形性能分析器简介英特尔® 图形性能分析器(英特尔® GPA)是一个应用程序套件,其中包含用于分析和优化图形密集型应用程序的工具,包括但不限于 Microsoft DirectX*、Vulkan*、Metal* 和 OpenGL* 游戏。借助英特尔 GPA,您可以在各种平台上测试您的应用程序,以检测瓶颈并为每个平台找到最佳优化。您还可以启用/禁用某些功能(例如详细的地形功能或额外的互动游戏元素),直到您获得最佳的游戏体验。英特尔 GPA 工具显示应用程序性能数据,包括 GPU 和 CP

2021-07-15 11:41:28 1241

翻译 GPA-英特尔® 图形性能分析器用户指南

英特尔® 图形性能分析器GPA用户指南英特尔® 图形性能分析器简介游戏优化方法论安装和启动英特尔 GPA启动分析应用程序配置分析设置分析桌面图形应用程序检测和跟踪技术 API 支持性能指标参考用户界面参考官网文章翻译-待更新...

2021-07-15 10:46:31 144

原创 科普使用ADB调试安卓用户客户端查证问题

查证问题-使用ADB调试安卓用户客户端当我们的App出现问题的时候,且无法获取到日志记录的时候。我们可以尝试使用ADB调试安卓用户客户端。获取到用户联系方式,如果用户有电脑,让用户帮忙协助查证问题,最好能通过类似QQ的软件与用户进行交流。将ADB文件传输给用户。(下载地址,根据用户电脑操作系统来下载对应的文件,如platform-tools_r31.0.2-windows.zip。本文以Windows操作系统举例)我们可以让用户将文件拷贝解压到D盘,本文以D盘举例。不要系统盘(C盘),可

2021-06-11 18:54:42 144

原创 一句话介绍23种设计模式

一句话介绍23种设计模式Abstract Factory(抽象工厂): 提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。Adapter(适配器): 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Bridge(桥接): 将抽象部分与它的实现部分分类,使它们都可以独立地变化。Builder(生成器): 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Chain of Respons

2021-05-08 21:03:00 101

原创 design_pattern_singleton 单例模式

模式动机1对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。一个更好的解决办法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例被创建,并且它可以提供一个访问该实例的方法。这就是单例模式的模式动机模式定义2保证一个类

2021-04-25 03:42:10 237

原创 命令队列

命令队列#!/usr/bin/env python# -*- encoding: utf-8 -*-class Command: def __init__(self): self.m_executedCallbackDict = {} self.m_undidCallbackDict = {} def execute(self): pass def undo(self): pass def setExecutedCallback(self, k, func): s

2021-04-20 03:28:35 395

原创 design_pattern_command命令模式

命令模式GOF定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。例子class Command: # 指令抽象类 def execute(self): pass def undo(self): passclass Receiver: def __init__(self): self.m_Command = [] sel

2021-04-19 20:27:58 97 1

原创 Game Programming Patterns 核心观点

架构,性能和游戏评价架构设计的好坏就是评价它应对改动有多么轻松。设计要为业务负责:人们很容易沉浸在代码中,忽略了目标是要发布游戏。 对可扩展性的过分强调使得无数的开发者花费多年时间制作“引擎”, 却没有搞清楚做引擎是为了什么。努力写最简单,最直接的解决方案。...

2021-04-19 14:20:19 84

原创 游戏程序阅读书单更新

设计模式游戏编程模式 - Game Programming Patterns英文版在线阅读中文版在线阅读参考:英文github、中文githubwait

2021-04-19 11:29:24 54

原创 (读书总结)《看板实战》- Kanbaneros团队开始看板之旅

项目工作中出现的问题经常延迟交付工作量估算常常不准整个团队忙得不可开交工作任务优先级不清需求来自四面八方成员之间互不清楚谁在干什么看板(如何解决以上问题,我们引入了看板的方法)看板从你的现状开始,帮助你了解现状,助你识别下一步改进的机会白板(为了让我们的工作更好地可视化出来,我们需要一块白板来记录工作待办事项)行动把每个人正在进行的工作都写下来每个工作项单独写在一个即时贴上尽量简洁,能理解是哪项工作就行用粗笔写清楚,不要用圆珠笔(细细的涂鸦方式让人很难理解)(

2020-12-25 23:08:58 285

原创 Intel GPA(Graphics-Performance-Analyzers)工具使用

这里写自定义目录标题简介下载作用系统分析:了解游戏的高级性能概况流分析:具有潜在性能瓶颈的点帧框架分析:精确定位框架中的性能瓶颈平台分析:可视化您的应用程序及其在所有CPU和GPU上的线程之间的交互使用Windows * OS英特尔®图形性能分析器入门步骤1:启动您的应用程序进行分析参考简介英特尔® Graphics Performance Analyzers(英特尔® GPA),可以通过快速识别性能瓶颈并解决问题来提高游戏性能,以创建高帧速率的最佳游戏。推荐给艺术家、设计师、游戏程序员和游戏引擎程序员

2020-12-23 21:49:58 9317 3

原创 Unity游戏开发基础(1)-初识unity

Unity游戏开发基础Unity游戏开发基础安装Unity跨平台原理开发语言Unity编辑器Unity坐标系Unity摄像机编辑器基本操作Unity游戏开发基础参考官方文档:Unity 用户手册-在 Unity 中操作-准备开始安装Unity一般会安装一个Hub,然后再安装具体版本。根据统计使用的最多的是每年4月份的发布版本。个人建议安装2019.4/2018.4/2017.4。我知道你需要破解工具,网上找得到。当然我们建议你购买正版。跨平台原理Java语言实现跨平台是因为在每个平台上

2020-11-24 01:36:29 198

原创 cocos2dx 4.0 内存管理分析

核心基类-Ref在cocos/base cocos/2d 等核心类都是Ref的派生类,而Ref类正是充当了内存管理的角色Ref 定义class CC_DLL Ref{public: void retain(); void release(); Ref* autorelease();protected: Ref();protected:...

2020-04-16 18:05:42 454 3

原创 计算数值原码、反码、补码以及补码如何运算

计算数值原码、反码、补码以及补码计算例子:计算原码、反码、补码例子:数值如何通过补码求和def changeDecToR(num, r=2): """十进制转为R进制 整数部分:“除以R取余”法 小数部分:“乘以R取整”法 :param num: 需要转换的十进制数 :param r: 目标进制 :return: 转后后的进制值 """ lstInt = [] lst...

2020-04-14 16:27:27 733

原创 任意进制与十进制转换 (含小数)

python 任意进制与十进制转换 (含小数)def changeDecToR(num, r=2): """十进制转为R进制 整数部分:“除以R取余”法 小数部分:“乘以R取整”法 :param num: 需要转换的十进制数 :param r: 目标进制 :return: 转后后的进制值 """ lstInt = [] lstFloat = [] _int = int(nu...

2020-04-14 15:01:10 1296 3

原创 游戏主循环基础例子 GameLoop

游戏主循环基础例子 GameLoop这里比较简单,直接发代码好了import timefrom loguru import loggerfrom core import GetDeltaTime, SetLastFrameTimeFPS = 60 # 帧g_IsRunning = Falseg_IsPause = Falsedef init(*args, **kw...

2020-04-08 18:09:57 692

原创 《Python 语言参考》笔记 2. 语法分析

2.1. 行结构2.1.1. 逻辑行逻辑行的结束是以 NEWLINE 形符表示的。2.1.2. 物理行物理行是以一个行终止序列结束的字符序列。(回车/换行/\n)2.1.3. 注释一条注释以不包含在字符串字面值内的井号 (#) 开头,并在物理行的末尾结束。2.1.4. 编码声明如果一条注释位于 Python 脚本的第一或第二行,并且匹配正则表...

2020-03-23 16:18:31 199

memcached 需要的jar包

memcached 需要的jar包memcached 需要的jar包memcached 需要的jar包

2017-10-17

Linux命令大全

Linux命令大全Linux命令大全Linux命令大全Linux命令大全Linux命令大全

2017-10-17

VMware 克隆多台Linux机器并配置IP

( VMware 克隆多台Linux机器并配置IP.pdf )( VMware 克隆多台Linux机器并配置IP.pdf ) ( VMware 克隆多台Linux机器并配置IP.pdf )

2017-10-17

广工软件工程复习资料2016年6月(2010、2014、2015试卷等)

文库应该有一份16年6月的,大家自己下载哈。

2016-06-23

广工编译原理复习资料2015年版本

广工计算机学院编译原理复习资料2015年12月版本,内涵多张试卷,复习必备

2015-12-17

广工计算机系统结构复习资料2015

广工计算机系统结构复习资料2015年12月资料(内含多年试卷、题库、复习必备资料),广工的孩子都不容易,选系统结构的更不容易,加油

2015-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除