#opengl #unsigned-int #cg #vector #vertex-attribute

vec-2-10-10-10

一个32位向量,其中2位用于alpha通道,30位用于颜色。与GL_UNSIGNED_INT_2_10_10_10_REV顶点属性格式兼容。

3个版本

使用旧的Rust 2015

0.1.2 2017年9月2日
0.1.1 2017年9月2日
0.1.0 2017年9月2日

#4 in #cg

Download history 36/week @ 2024-03-11 37/week @ 2024-03-18 36/week @ 2024-03-25 91/week @ 2024-04-01 25/week @ 2024-04-08 35/week @ 2024-04-15 41/week @ 2024-04-22 34/week @ 2024-04-29 27/week @ 2024-05-06 31/week @ 2024-05-13 25/week @ 2024-05-20 37/week @ 2024-05-27 34/week @ 2024-06-03 20/week @ 2024-06-10 34/week @ 2024-06-17 31/week @ 2024-06-24

124 每月下载量

MIT/Apache

13KB
111

紧凑的4D,32位2-10-10-10向量

Version Build Status

这是一个32位的4维向量,其中第一个维度有2位,最后三个维度各有10位。它适用于表示带有alpha通道的颜色,其中alpha通道不需要很高的精度。

它与OpenGL中的GL_UNSIGNED_INT_2_10_10_10_REV兼容。

示例

extern crate vec_2_10_10_10;

fn main() {
    let value = vec_2_10_10_10::Vector::new(0.444, 0.555, 0.666, 0.2);
    
    assert!(approx_equal(value.x(), 0.444));
    assert!(approx_equal(value.y(), 0.555));
    assert!(approx_equal(value.z(), 0.666));
    
    // 2 bits means only possible values are 0, 0.3(3), 0.6(6) and 1.
    assert!(approx_equal(value.w(), 0.333));
}

fn approx_equal(a: f32, b: f32) -> bool {
    const DELTA: f32 = 0.001;
    a > b - DELTA && a < b + DELTA
}

安装

在你的Cargo.toml中添加

vec-2-10-10-10 = "0.1"

添加对crate的引用

extern crate vec_2_10_10_10;

许可证

在以下两者中选择一个许可证

任选其一。

贡献

除非你明确声明,否则你提交的任何有意包含在作品中的贡献,根据Apache-2.0许可证的定义,应如上双许可,不附加任何额外条款或条件。

无运行时依赖