Qt TCP

一、总结 TCP 就像打电话,安全,不会丢包 Linux TCP 通信 Qt TCP 通信 二、服务器端 TCP 服务器端有两个套接字,一个是监听套接字,一个是通信套接字 tcpServer = nullptr; // 服务监听套接字 tcpSocket = nullptr; // 通信套接字 // 创建tcp服务监听套接字 tcpServer = new QTcpServer(this); // tcp服务开启监听(bind端口号并开启监听) tcpServer->listen(QHostAddress::Any, 8008); // 绑定连接成功信号 connect(tcpServer, &QTcpServer::newConnection,[=](){ // 获取通信套接字 tcpSocket = tcpServer->nextPendingConnection(); // 获取客户端 IP 和 端口 QString ip = tcpSocket->peerAddress().toString(); quint16 port = tcpSocket->peerPort(); QString msg = QString("[%1:%2] 连接成功")....

July 15, 2022 · 1 min · Rick Cui

Qt CMake

cmake_minimum_required(VERSION 3.5)project(07_TCP LANGUAGES CXX)# 将编译目录包含到Include目录 set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOUIC ON)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTORCC ON)# 根据 Qt 版本的环境变量,设置使用的 Qt 版本 set(CMAKE_PREFIX_PATH $ENV{QTDIR5141_64})set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_STANDARD_REQUIRED ON)# QtCreator supports the following variables for Android, which are identical to qmake Android variables. # Check http://doc.qt.io/qt-5/deployment-android.html for more information. # They need to be set before the find_package(Qt5 ...) call. #if(ANDROID) # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") # if (ANDROID_ABI STREQUAL "armeabi-v7a") # set(ANDROID_EXTRA_LIBS # ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so # ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so) # endif() #endif() # 工程中会用到的Qt模块 find_package(Qt5 COMPONENTS Widgets Network REQUIRED)if(ANDROID) add_library(07_TCP SHARED main....

July 15, 2022 · 1 min · Rick Cui

OpenGL Shading Frequencies

July 10, 2022 · 0 min · Rick Cui

OpenGL 纹理采样

有两个不同的概念:像素(Pixel)和纹素(Texel) 在纹理上查询纹素有两种方式: 点查(Point Query):小纹理,而要对纹理放大 范围查(Range Query):动态生成 Mipmap 小纹理:低分辨率纹理应用到高分辨率设备,会产生马赛克问题 Nearest:邻近点 Bilinear:双线性插值 Bicubic: 大纹理:高分辨率纹理应用到低分辨率设备,会有 锯齿(Jaggies) 和 摩尔纹(Moire) 等 走样(Aliasing) 的问题 多重采样(supersampling) 面采样求平均值 Mipmap:图像金字塔 具有速度快、只是近似值且只能是方形范围的特点 会额外占用 1/3 的原始纹理显存空间,总共 4/3 的显存占用 三线性插值(Trilinear interpolation): 先在相邻两层 Mipmap 中分别进行 Bilinear 插值,再在结果之上进行线性插值 局限性:会存在 overblur 的问题 各项异性过滤(Anisotropic Filtering)(Ripmap): 对于平行于坐标轴的矩形区域查询有较好的表现,但是对于非矩形区域仍是效果不佳 会额外占用 3 倍的显存空间 纹理映射的不规则区域 EWA Filtering:...

July 10, 2022 · 1 min · Rick Cui

OpenGL 重心坐标与插值

重心坐标在投影下不是不变的,所以如果要获取光栅化后三角形内部像素点的深度,不能使用光栅化后三角形的重心坐标进行插值,而是要先找到像素点中心位置对应的三维世界的三维坐标,在三维世界中进行深度插值计算。 参考: 利用重心坐标平滑插值三角形顶点的任何属性 GAMES101-现代计算机图形学入门-闫令琪

July 9, 2022 · 1 min · Rick Cui