C++和OpenGL实现3D游戏编程【连载7】——文字和汉字的显示

1、本节实现的内容

上一节我们讨论了纹理在二维平面内不规则图形贴图的相关基础操作,本节我们开始了解游戏里文字以及汉字的显示方法。本节课我们将从基本的ASCII字符显示,拓展到中文字符的显示,最后再讲到纹理字符的显示,并对各种文字显示方法的优缺点和使用场景进行分析,这节课将使用到显示列表等操作,我们还将制作一个显示文字坠落的动画效果。
在这里插入图片描述

2、文字显示与普通Windows编程的区别

第一、文字显示的方法不同
在刚刚开始接触的open GL的时候,我一直想找一个类似于hello world式的范例程序,来简单直观的感受学习内容,因为对于任何一个程序或者游戏,文字都是必不可少的最最主要的交互要素之一。但我后来发现这是一个错误的想法,OpenGL 没有自带专门的字库,因此,要显示文字,就必须依赖操作系统所提供的功能,不能像windows编程里直接使用TextOut或DrawText函数那么方便。

第二、文字显示也分二维和三维空间
以前在进行普通的windows编程时,因为全都是二维界面,只有一个坐标系,而且坐标的左上角为(0,0)原

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/414584.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Masscan扫描器进行信息搜集

Masscan 是一款极为高效的端口扫描工具,以其卓越的扫描速度和大规模扫描能力而著称。该工具不仅支持 TCP 和 UDP 协议的扫描,还允许用户根据需求灵活指定多个目标和端口。Masscan 通过采用先进的网络性能优化技术,充分利用操作系统的资源和多…

基于北斗+自组网技术的光伏电场人员位置监控系统优化方案

一、方案背景 1.1 用户需求 随着我国经济的快速发展,光伏电场等新能源项目的建设日益增多。然而,这些项目往往位于偏远地区,通信基础设施不完善,导致施工人员在作业过程中难以与外界保持实时联系。特别是在无人区或信号弱的地区…

【Qt 事件】—— 详解Qt事件处理

目录 (一)事件介绍 (二)事件的处理 (三)按键事件 3.1 单个按键 3.2 组合按键 (四)鼠标事件 4.1 鼠标单击事件 4.2 鼠标释放事件 4.3 鼠标双击事件 4.4 鼠标移动事件 4.5…

101.SAP MII功能详解(15)Workbench-Transaction Logic(Iterator)

目录 1.Logic->Iterator 2.演示 配置连接 Iterator使用示例 1.Logic->Iterator 您可以使用此操作迭代循环浏览List,迭代是指遍历某个List数据结构,逐个访问其元素的过程。迭代使用的场景不多。 2.演示 配置连接 Iterator使用示例 数据源是Lis…

Qt:玩转QPainter序列九(文本,文本框,填充)

前言 继续承接序列八 正文 1. drawImage系列函数 绘制图像 inline void drawImage(const QPoint &p, const QImage &image); 作用: 在指定的点 p 上绘制 QImage 图像。图像的左上角将对齐到 p 点。 inline void drawImage(int x, int y, const QImage &image,…

[001-07-001].Redis7缓存双写一致性之更新策略探讨

1、面试题: 1.只要使用缓存,就可能会涉及到redis缓存与数据库双存储双写,只要是双写,就存在数据一致性问题,那么是如何解决数据一致性问题的2.双写一致性,你先动缓存redis还是数据库MySQL,哪一个…

新能源汽车超级电容和电池能量管理系统的simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 电池模型 4.2 电池荷电状态(SOC)估算 4.3 超级电容器模型 4.4 能量管理 5.完整工程文件 1.课题概述 新能源汽车的能量管理系统(Energy Management System, EMS…

中国艺术孙溟㠭凿篆《无用之用》

孙溟㠭凿篆作品《无用之用》 这方作品是孙溟㠭先生用凿木的方式凿刻出来的,呈现出了凿痕的效果,与众不同。 孙溟㠭凿篆《无用之用》 孙溟㠭凿篆《无用之用》 万般皆有所用,取其长补余短,无用之用是为大用&#xff0…

JS实现高度不等的列表虚拟滚动加载

当我们拿到后台返回的1万条数据展示时,如果完全渲染不仅渲染的时间很长,也会导致浏览器性能变差,使用过程中还可能会导致卡顿,使用体验变差。 就需要我们想办法优化这种情况,这个时候使用虚拟滚动加载就能很好的避免这…

ESXi服务器无法安装Windows11:“不符合此版本的Windows所需最低系统要求“

目录 一、问题描述1.使用环境2.问题截图3.问题解析 二、解决方法Ⅰ1.按 ShiftF10 弹出命令提示符2.在弹出的Dos框中输入regedit,回车,进入注册表。3.打开HKEY_LOCAL_MACHINE\SYSTEM\Setup,并新建 LabConfig 的项,在 LabConfig 下创…

SAP 查询中间表

可以看到如下代码中,查询了底表zdbconn,又查了中间表ZTFI0072 DATA: gv_dbs(20) ,go_exc_ref TYPE REF TO cx_sy_native_sql_error,gv_error_text TYPE string,lv_count TYPE syst_index.SELECT SINGLE conntxtFROM zdbconn INTO gv_dbsWHERE sy…

RK3568 Android 11 蓝牙BluetoothA2dpSink 获取用于生成频谱的PCM

Android 中的 A2DP Sink A2DP Sink 在 Android 系统中主要用于 接收 其他蓝牙设备(如手机、平板、电脑等)发送过来的 高质量的立体声音频。简单来说,它让你的 Android 设备可以充当一个 蓝牙音箱 或 耳机 的角色。 核心功能: 接…

【Java】SpringBoot 单体项目创建 与 整合 Mybatis-Plus

文章目录 前言1. 创建项目与整合MP1.1 IDEA创建SpringBoot项目1.2 SpringBoot整合Mybatis-Plus 2. 远程仓库2.1 创建远程仓库/本地仓库2.2 Add/Commit/Push/Pull 3. 总结与补充3.1 解决refusing to merge unrelated histories3.2 总结3.3 结语 参考资料 SpringBoot 单体项目创建…

Hadoop环境搭建

一、Linux环境准备 Linux命令查询https://www.linuxcool.com/ http://linux.51yip.com/ 安装Linux虚拟机 安装 sudo apt install open-vm-tools 安装 sudo apt install open-vm-tools-desktop (可选)换国内源 ​​ sudo apt update 更新软件列表&…

火焰传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main.c文件 IR.h文件 IR.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 火焰传感器是一种常用于检测火焰或特定波长(760nm-1100nm)红外光的传感器。探测角度60左右&am…

Docker占用根目录/存储空间过多如何清理?

问题背景 使用df -h查看磁盘空间时发现根目录空间不多了,已使用96%,红色警告!!! 于是使用df -h /* 一层一层定位,终于找到了一个大文件 9G多的文件夹,位置是: /var/lib/docker/o…

无线通信-WIFI通信

文章目录 1. 基础知识2. 工作模式3. AT指令4. 常用AT指令实例5. 连接原子云6. 使用usb转ttl模块测试ATK-MW8266D7. 使用STM32F103ZET6战舰开发板透传模式8. 使用STM32F103ZET6战舰板连接原子云 1. 基础知识 ATK-ESP-01 ATK-ESP-01模块支持标准的IEEE802.11b/g/n协议&#xff0c…

【Linux】文件魔法师:时间与日历的解密

欢迎来到 CILMY23 的博客 🏆本篇主题为:文件魔法师:时间与日历的解密 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码…

【uniapp重大bug】uni-data-select的localdata改变,也会触发@change方法

bug描述 uni-data-select的下拉列表值localdata是动态获取的,且绑定了change方法,在页面加载后,请求localdata的列表数据,给localdata重新赋值,此时发现自动触发了change方法 当前uni版本:^2.0.2-30709202…

Axure RP10安装教程(Pro版)

下载链接 https://ga90eobypbb.feishu.cn/docx/UyzSd4q8SoXySjxtrcac4QnVn3f Axure RP 是一款专业的快速原型设计工具。它能帮助用户高效地创建网页和移动应用的线框图、流程图、原型和规格说明文档。拥有丰富的交互组件,可模拟各种复杂交互效果,如点击…