mirror of
https://github.com/GayPizzaSpecifications/voxelotl-engine.git
synced 2025-08-02 13:00:53 +00:00
use floats for instance colour memory
This commit is contained in:
parent
f203bcc7c1
commit
8904db24a5
@ -89,6 +89,10 @@ public extension Color where T: BinaryFloatingPoint {
|
||||
self.init(r: newR, g: newG, b: newB, a: Self.one)
|
||||
}
|
||||
|
||||
init<U: BinaryFloatingPoint>(_ other: Color<U>) {
|
||||
self._values = SIMD4<T>(other._values)
|
||||
}
|
||||
|
||||
init<U: BinaryInteger>(_ other: Color<U>) {
|
||||
let mul = 1 / T(0xFF)
|
||||
self.init(
|
||||
|
@ -380,7 +380,7 @@ public class Renderer {
|
||||
.scale(instance.scale)
|
||||
data[i] = VertexShaderInstance(
|
||||
model: model, normalModel: model.inverse.transpose,
|
||||
color: SIMD4(Color<UInt8>(instance.color)))
|
||||
color: SIMD4(Color<Float>(instance.color)))
|
||||
}
|
||||
}
|
||||
instanceBuffer.didModifyRange(0..<instancesBytes)
|
||||
|
@ -23,7 +23,7 @@ vertex FragmentInput vertexMain(
|
||||
FragmentInput out;
|
||||
out.position = u.projView * world;
|
||||
out.world = world.xyz;
|
||||
out.color = half4(i[instanceID].color) / 255.0;
|
||||
out.color = half4(i[instanceID].color);
|
||||
out.normal = (i[instanceID].normalModel * vtx[vertexID].normal).xyz;
|
||||
out.texCoord = vtx[vertexID].texCoord;
|
||||
return out;
|
||||
|
@ -25,7 +25,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
matrix_float4x4 model;
|
||||
matrix_float4x4 normalModel;
|
||||
vector_uchar4 color;
|
||||
vector_float4 color;
|
||||
} VertexShaderInstance;
|
||||
|
||||
typedef struct {
|
||||
|
Loading…
Reference in New Issue
Block a user