强大的GPU片段编程:

简介:

强大的GPU片段编程:
在CG程序中,顶点程序的输入一定要有一个POSITION,也一定要输出一个POSITION ,输入的POSITION 为顶点在模型空间的位置,输出为最终的CLIP空间的位置,而在片段程序中,输入只能是COLOR和TEXCOODx, 输出只能为COLOR,因为这是GPU渲染的最后一步,你只能改变每个片段的颜色。但是如果我想根据 片段的位置来改变他的颜色怎么办呢,输入中没有POSITION,但是这个TEXCOORD却是一个神通广大的量, 它可以代表任何从顶点程序中传回的向量。我们可以在顶点程序中定义一个TEXCOORD0予以的向量,然后把 顶点的POSITION传给他,那么在片段程序中就可以接受到这位置信息,这就可以实现很多的功能 下面是一个应用片段程序做的DEMO,它根据三角形的每个像素点的位置加上正弦波滤波得到该点的颜色, 这个效果在纯OPENGL中是很难得到的,因为OPENGL是基于顶点插值渲染的,二这个DEMO不是插值是直接赋予 像素点颜色,而且它运行速度极快,因为在GPU中SIN这种函数只是一个指令,就跟假发操作一样高效;
注意我们实现的效果的关键的片段程序只有一行代码!
CG源程序;
顶点程序: struct C2E1v_Output { float4 position : POSITION; float4 fragposition :TEXCOORD0; }; C2E1v_Output C2E1v_green(float2 position : POSITION) { C2E1v_Output OUT; OUT.position = float4(position,0,1); OUT.fragposition=float4(position,0,1); return OUT; }
片段程序: void test( float4 position : TEXCOORD0, out float3 color:COLOR) { color=float3(sin(position.x*10),sin(position.y*10),sin(position.z*10)); }

 

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
Unix 异构计算 Windows
带你读《基于CUDA的GPU并行程序开发指南》之一:CPU并行编程概述
本书旨在帮助读者了解与基于CUDA的并行编程技术有关的基本概念,并掌握实用c语言进行GPU高性能编程的相关技巧。本书第一部分通过CPU多线程编程解释了并行计算,使得没有太多并行计算基础的读者也能毫无阻碍地进入CUDA天地;第二部分重点介绍了基于CUDA的GPU大规模并行程序的开发与实现,并通过大量的性能分析帮助读者理解如何开发一个好的GPU并行程序以及GPU架构对程序性能的影响;本书的第三部分介绍了一些常用的CUDA库。
|
2月前
|
存储 并行计算 算法
CUDA统一内存:简化GPU编程的内存管理
在GPU编程中,内存管理是关键挑战之一。NVIDIA CUDA 6.0引入了统一内存,简化了CPU与GPU之间的数据传输。统一内存允许在单个地址空间内分配可被两者访问的内存,自动迁移数据,从而简化内存管理、提高性能并增强代码可扩展性。本文将详细介绍统一内存的工作原理、优势及其使用方法,帮助开发者更高效地开发CUDA应用程序。
|
6月前
|
缓存 并行计算 算法
上帝视角看GPU(5):图形流水线里的不可编程单元
上帝视角看GPU(5):图形流水线里的不可编程单元
166 0
|
6月前
|
机器学习/深度学习 并行计算 流计算
【GPU】GPU CUDA 编程的基本原理是什么?
【GPU】GPU CUDA 编程的基本原理是什么?
170 0
|
6月前
|
存储 人工智能 缓存
探索AIGC未来:CPU源码优化、多GPU编程与中国算力瓶颈与发展
近年来,AIGC的技术取得了长足的进步,其中最为重要的技术之一是基于源代码的CPU调优,可以有效地提高人工智能模型的训练速度和效率,从而加快了人工智能的应用进程。同时,多GPU编程技术也在不断发展,大大提高人工智能模型的计算能力,更好地满足实际应用的需求。 本文将分析AIGC的最新进展,深入探讨以上话题,以及中国算力产业的瓶颈和趋势。
|
异构计算 机器学习/深度学习 算法
GPU编程(五): 利用好shared memory
目录 前言 CPU矩阵转置 GPU实现 简单移植 单block tile 利用率计算 shared memory 最后 前言 之前在第三章对比过CPU和GPU, 差距非常大. 这一次来看看GPU自身的优化, 主要是shared memory的用法.
1406 0
|
并行计算 算法 NoSQL
GPU编程(四): 并行规约优化
目录 前言 cuda-gdb 未优化并行规约 优化后并行规约 结果分析 最后 前言 之前第三篇也看到了, 并行方面GPU真的是无往不利, 现在再看下第二个例子, 并行规约. 通过这次的例子会发现, 需要了解GPU架构, 然后写出与之对应的算法的, 两者结合才能得到令人惊叹的结果.
1633 0
|
存储 缓存 并行计算
GPU编程(二): GPU架构了解一下!
目录 前言 GPU架构 GPU处理单元 概念GPU GPU线程与存储 参考 最后 前言 之前谈了谈CUDA的环境搭建. 这次说一下基本的结构, 如果不了解, 还是没法开始CUDA编程的.
1503 0
|
机器学习/深度学习 人工智能 并行计算
GPU编程(一): Ubuntu下的CUDA8.0环境搭建
目录 前言 老黄和他的核弹们 开发环境一览 显卡驱动安装 下载驱动 禁用nouveau 安装驱动 安装CUDA8.0 参考 最后 前言 在Linux下安装驱动真的不是一件简单的事情, 我在经历了无数折磨之后终于搭起了GPU编程环境.
2695 0

热门文章

最新文章

下一篇
无影云桌面