• 1.30cg


    cg的类型转换是强制类型转换,也可以是隐式转换,如果是隐式转换的话只可以从低精度转换到高精度,

    比如:

    float a = 1.0;

    half b = 2.0;

    float c = a+b;

    //float c = a + (float)b;

    flaot d = a +2.0;

    //编译时 2.0 做float类型;

    swizzle 操作符: 用于去除向量变量类型中的分量;

    swizzle操作符后的x y z w分别表示向量的第一个 第二个 第三个 第四个元素;

    所有流程控制语句的返回值都必须是bool型,不可以是0或者1;

    vs_2_x,vp30,vp40中profile支持for和while;

    禁止是用递归,保留case switch关键字;

    uniform类似const;

    uniform修饰表示该值通过外部程序传入,并且不随着图元信息的改变而发生变化。

    in修饰一个形参用于输入,进入函数体时候被初始化,且形参不会改变实参;

    out修饰一个形参只是用于输出,进入函数体的时候没有被初始化,

    inout修饰一个形参即用于输入,也用于输出,这是典型的引用传值。

    参数没有修饰的时候默认使用in;

    通常我们在程序中涉及到的顶点,法线等都是三元向量,为什么要用四元呢?

    x,y,z,0 代表是一个空间向量  x,y,z,1 则代表是一个空间点

    而且可以将平移 缩放 旋转等运算统一到四阶矩阵的乘法中。

    因为cg语言中不存在指针机制,所以,数组作为函数的形参,传递的是数组的完整拷贝。

    而且数组可以是一维的,也可以是多维的,而且不必声明数组的长度。

  • 相关阅读:
    k8s之创建etcd集群
    完美解决微信video视频隐藏控件和内联播放问题
    JS工具库封装:Video转换成Canvas
    H5 video 标签 播放事件
    iSlider 如丝般高性能H5全屏滑动组件
    设计模式之 适配器模式
    c++ STL常用算法使用方法
    快速排序与二分查找
    CLOSE_WAIT TIME_WAIT
    erlang erl文件编译的三种脚本
  • 原文地址:https://www.cnblogs.com/RenderLife/p/2883497.html
Copyright © 2020-2023  润新知