自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 使用C++实现OpenGL软光栅(7)-三角形贴图

上篇文章我们已经知道了如何画一个三角形,现在就学习如果在这个三角形上贴个图预期效果如图:原理其实说来也简单。

2025-01-10 16:55:38 161

原创 使用C++实现OpenGL软光栅(6)-画个三角形

前面学习了画点,画线,现在更进一步,画个三角形出来三角形其实就是三条线相交以及他们包裹的部分,对应了三个顶点。

2025-01-10 15:26:05 175

原创 使用C++实现OpenGL软光栅(5)-图片加载与颜色混合

这样在走到上面加了颜色混合后的DrawPoint时,如果有像素重合,就会根据传入的alpha值与255的比例作为权重进行绘制,达到颜色汇合的目的。由于stb_image最后返回的是一串字节bits(毕竟图片说白了就是位置信息+颜色信息),所以这里创建一个image类。接下来画图片的过程中,其实就是把image里面的mData离散成一个一个点画在屏幕上。如果在外部开启了颜色混合,则根据来源图片的alpha值的比例作为权重系数。直接就返回一个image对象,非常简单。然后在加载图片的时候,添加透明度的选项。

2024-12-29 17:58:08 185

原创 使用C++实现OpenGL软光栅(4)-三角形扫描算法

这个问题换在电脑上就是给出三个坐标,返回这三个坐标所包围的三角形的像素集合。给出屏幕上三个点,如何画出一个三角形呢?

2024-12-29 11:37:21 102

原创 使用C++实现OpenGL软光栅(3)-Brensenham直线算法

如果p小于0,则x步进1,y不变,y2 = y1 ,所以p2 = p1 + 2德塔y,所以在上面p大于0的时候需要多减2个德塔x的目的就在这。知道第一个点,先画第二个点,如果p大于0,则x步进1,y+1,则时p2 = p1 + 2德塔y - 2德塔x。但是这里面全是浮点数计算,更别说还有浮点数乘除,消耗太高,很不推荐。通过一系列枯燥的计算我们终于得到的结论,也就是上图中的代码。首先考虑特殊情况,然后将其他情况想办法转到该特殊情况即可。特殊情况就是最简单的,第一象限,且斜率在0到1之间。

2024-12-28 17:05:22 209

原创 使用C++实现OpenGL软光栅(2)-模拟GPU

而双缓冲绘图机制就更简单,不可能让用户看到绘图过程对吧,得直接让他们看到一整张图,所以就创建另一个HDC(简称HDC2),现在HDC2上一个像素一个像素地画图,然后直接全部复制到HDC1上,这样在用户看来就是一整张图同时被画好。而一个屏幕上肯定不止一个HDC,只要有窗口弹出来,系统就会为其分配一个虚拟的HDC,也就对应了一个独特的虚拟设备。handle of DC,也就是上面说的HDC,就是DC的句柄,表示当前显示设备的描述,比如长宽,像素格式等等。现在要更进一步,添加一个模拟GPU进行实际绘制。

2024-12-28 16:18:26 507

原创 使用C++实现OpenGL软光栅(1)-Windows绘制逻辑解析

一个最简单的windows窗体构建逻辑很简单,循环,事件,注册,生成,就这么几步即可,大部分都是调用windows的底层API。

2024-12-28 14:28:55 481

原创 猫课 MyFirstLight学习笔记

这样旋转物体 法线方向会随着物体的位置发生移动,原因是动态批处理需要从对象空间变换到世界空间,并且还要进行额外的排序,这些操作会影响到对象空间法线的方向。

2024-12-21 09:16:18 203

原创 屏幕后处理:变黑白

【代码】屏幕后处理:变黑白。

2023-06-15 07:53:50 11

原创 Shader练习:水面效果

【代码】Shader练习:水面效果。

2023-06-14 08:09:25 8

原创 Shader练习:毛玻璃

需要添加自身纹理图和噪点图。

2023-06-14 07:57:56 6

原创 Shader练习:透视

【代码】Shader练习:透视。

2023-06-14 07:54:40 7

原创 Shader练习:卡通渲染

【代码】Shader练习:卡通渲染。

2023-06-14 07:21:00 9

原创 Shader练习:描边

【代码】Shader练习:描边。

2023-06-07 22:33:16 5

原创 Shader练习:雪中人

【代码】Shader练习:雪中人。

2023-06-07 22:32:39 6

原创 LightMapping实战

确保Room和Monkey在场景中都是static对象,否则不能烘培如果美工建立的模型顶点不带UV通道数据,则需要勾选模型的生成UV数据选项,否则不能为每个对象单独生成光照贴图坐标信息monkey和room都是blend对象。

2023-06-02 08:33:56 8

原创 CG1-屏幕上绘制三角形

3.确定绘制line的shader代码。1.确定三种变换的代码。

2023-05-31 07:38:41 5

转载 unity UI性能优化

Unity UI性能优化

2023-02-22 11:58:54 68

原创 10.27Unity事件、场景烘焙、Render Texture

1.Unity的几种事件用法①eventusing System.Collections;using System.Collections.Generic;using UnityEngine;using System;using UnityEngine.UI;using UnityEngine.Events;public class CollisinEvent : UnityEvent<GameObject, GameObject> { }public class H

2021-10-28 09:28:40 2055

空空如也

空空如也

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

TA关注的人

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