Ejemplo n.º 1
0
        public void SetPickingColor(IPickable pickable, ShaderProgram shader)
        {
            var color = new Vector4(
                ((pickingIndex >> 16) & 0xFF),
                ((pickingIndex >> 8) & 0xFF),
                (pickingIndex & 0xFF),
                ((pickingIndex++ >> 24) & 0xFF)
                );

            color = new Vector4(color.X, color.Y, color.Z, color.W);

            var key = BitConverter.ToUInt32(new byte[] {
                (byte)color.X, (byte)color.Y,
                (byte)color.Z, (byte)color.W
            }, 0);

            ColorPassIDs.Add(key, pickable);

            var input = color / 255.0f;

            shader.SetVector4("color", input);
        }