学习笔记(17):3D图形理论-固定渲染管线实现

opengl 专栏收录该内容
28 篇文章 0 订阅

立即学习:https://edu.csdn.net/course/play/3814/67300?utm_source=blogtoedu

 固定管线:

 

    float3  piplineTransform(float3 pos)
	{
        float4  world(pos.x,pos.y,pos.z,1);
		//三维坐标经过mvp变换算出屏幕坐标,openGL是使用矩阵左乘
		float4  screen = _matProj * _matView * _matModel * world;
		if (screen.w == 0.0f)
		{
			return false;
		}

		//divied by w 标准化设备坐标,-1~1
		screen.x /= screen.w;
		screen.y /= screen.w;
		screen.z /= screen.w;

		// map to range 0 - 1
		screen.x = screen.x * 0.5f + 0.5f;
		screen.y = screen.y * 0.5f + 0.5f;
		screen.z = screen.z * 0.5f + 0.5f;

		// map to viewport
		screen.x = screen.x * _viewPort.x;
		screen.y = _height - screen.y * _viewPort.y;

		return  float3(screen.x, screen.y, screen.z);

	}

输入:顶点数据(Vertex Data)

->模型矩阵

->视图矩阵

->投影矩阵

->视口转化:把数据画到窗口 

输入一个三维坐标,经过以上变换之后输出一个二维屏幕上的坐标,把数据显示到二维屏幕上

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

汪汪富贵

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值