[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Public WebGL] ANGLE_instanced_arrays extension proposal
- To: public webgl <firstname.lastname@example.org>
- Subject: [Public WebGL] ANGLE_instanced_arrays extension proposal
- From: John Bauman <email@example.com>
- Date: Tue, 6 Mar 2012 13:39:36 -0800
- Authentication-results: mr.google.com; spf=pass (google.com: domain of firstname.lastname@example.org designates 10.52.35.12 as permitted sender) email@example.com; dkim=pass firstname.lastname@example.org
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type:x-system-of-record; bh=w8OPZOf9NKn+gscVyW7ksptZMYZXvivCszIuzxtT7fc=; b=hlUIQOU7t7hfjF/nG47hOzeXDJGz9lIlzZgdlHbcsa8JBZOknIkd5ehFT/0AaVr0lo az5Mbq8EtiayZI5HpUXxBuf5NH6xO4k+WKMxfYyUYjMpnrpar2PYFJbAO3spBtGbWdDM HJLRtXaKQiDuaIkQiTAIsACr2GbbhDXE+jZPZT7N3CSiRk/yXwfP5pv8JrHF2qH4KiXL MBAt4Zt21AjJGHX2A/RcvC980NxFlmKRFoX7TxwSCJUdJmUJFhnzfIV64oCNdNv+JVzY 5zzihe+s0eW61v9VcxrIiQJylhluvcXwWXoCSbvQNZlxnnrNQIubTHYirZLKp5LBBi+9 pWiA==
- List-id: Public WebGL Mailing List <public_webgl.khronos.org>
- Sender: email@example.com
I've just added a proposal for adding ANGLE_instanced_arrays to WebGL to allow geometry instancing:
This extension is a stripped-down version of ARB_instanced_arrays that can be easily-implemented on top of Direct3D 9.
It can be used by setting a divisor, n, on certain vertex attribs. Then when drawing multiple instances of a certain piece of geometry, those vertex attributes will keep the same value for every vertex in an entire instance. After drawing n instances, it will move on to the next value for that attrib.
- All Direct3D 9 hardware with Shader Model 3.0 supports it
- Supported through ANGLE on windows.
- Supported on OS X Lion on all machines, and on Snow Leopard on most machines
- Supported on NVIDIA's linux drivers, and probably ATI's
This is more difficult, as no mobile device that I know of supports geometry instancing. This could be supported using pseudo-instancing, but that would require either keeping a shadow copy of every vertex buffer in case it's used as instanced data, or performing a complicated and expensive readback to get at that data.
Does this seem like a worthwhile extension to people?