Read texture data from the heights texture
This commit is contained in:
parent
753e8eb311
commit
4803620d4b
2 changed files with 13 additions and 7 deletions
|
@ -30,12 +30,17 @@ typedef struct
|
|||
} ColorInOut;
|
||||
|
||||
vertex ColorInOut vertexShader(Vertex in [[stage_in]],
|
||||
texture2d<half> heights [[ texture(1) ]],
|
||||
constant Uniforms & uniforms [[ buffer(BufferIndexUniforms) ]])
|
||||
texture2d<half> heights [[texture(0)]],
|
||||
constant Uniforms & uniforms [[buffer(BufferIndexUniforms)]])
|
||||
{
|
||||
constexpr sampler s(coord::pixel, address::clamp_to_zero, filter::linear);
|
||||
|
||||
ColorInOut out;
|
||||
|
||||
float4 position = float4(in.position, 1.0);
|
||||
uint2 gridCoord(in.texCoord.x * heights.get_width(), in.texCoord.y * heights.get_height());
|
||||
half4 height = heights.read(gridCoord).rrrr;
|
||||
|
||||
float4 position(in.position.x, float(height.r), in.position.z, 1.0);
|
||||
out.position = uniforms.projectionMatrix * uniforms.modelViewMatrix * position;
|
||||
out.texCoord = in.texCoord;
|
||||
|
||||
|
|
|
@ -43,10 +43,11 @@ class Terrain: NSObject {
|
|||
}
|
||||
|
||||
/// Create and condition mesh data to feed into a pipeline using the given vertex descriptor.
|
||||
/// @param dimensions Coordinate dimensions of the plane
|
||||
/// @param segments Number of segments to divide each dimension into
|
||||
/// @param device Metal device
|
||||
/// @param vertexDescriptor Description of how to lay out vertex data in GPU memory
|
||||
///
|
||||
/// - parameter dimensions: Coordinate dimensions of the plane.
|
||||
/// - parameter segments: Number of segments to divide each dimension into.
|
||||
/// - parameter device: Metal device.
|
||||
/// - parameter vertexDescriptor: Description of how to lay out vertex data in GPU memory.
|
||||
class func buildMesh(withDimensions dimensions: float2, segments: uint2, device: MTLDevice, vertexDescriptor: MTLVertexDescriptor) throws -> MTKMesh {
|
||||
let metalAllocator = MTKMeshBufferAllocator(device: device)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue