zoukankan      html  css  js  c++  java
  • 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语言中不存在指针机制,所以,数组作为函数的形参,传递的是数组的完整拷贝。

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

  • 相关阅读:
    数据库生成连续编号 前几位为零
    C#中图片与BASE64码互相转换
    C#基于Socket的CS模式的完整例子
    一个公共类
    HttpCookie 操作Cookie
    C#打包SQL数据库部署安装
    <转>遍历 进程 内的内核对象
    《windows核心编程》–Windows内存体结构(二)
    《windows核心编程》–Windows内存体结构(一)
    《windows 核心编程》 探索虚拟内存
  • 原文地址:https://www.cnblogs.com/RenderLife/p/2883497.html
Copyright © 2011-2022 走看看