Recent Posts

Pages: 1 ... 5 6 [7] 8 9 10
61
GeeXLab - forum en français / Re: Updater un fragment shader
« Last post by JeGX on June 13, 2017, 10:00:17 PM »
Je vais regarder le live-coding des shaders à partir d'un editeur de texte asap! J'aime bien cette facon simple et cross-platform pour bidouiller les shaders, c'est d'ailleurs pour ça que j'avais implémenté le live-coding des scripts à partir des fichiers.

Maintenant pour live-coder les shaders sous Linux il existe une autre solution: utiliser les outils de live-coding reseau avec Wine. J'avais testé cette technique au début de GeeXLab et à l'époque ça fonctionnait bien. Dans le répertoire GeeXLab/LiveUpdaters_Wine/ tu trouveras le binaire network_live_updater_glsl.exe.

J'ai si bonne mémoire, tu lances d'abord GeeXLab avec l'option pour démarrer le serveur TCP de live coding:

Code: [Select]
$ GeeXLab /start_tcpip_server /demofile="..."

Ensuite tu lances le network_live_updater_glsl.exe avec Wine:

Code: [Select]
$ wine ./network_live_updater_glsl.exe

Maintenant tu peux cliquer sur "Connect to GeeXLab" et normalement de là, tu obtiens la liste de tous les GPU programs. Tu sélectionnes un GPU program et tu peux le live coder.

Je viens de tester rapidement sous Windows et ca fonctionne. Dis moi ce qu'il en est sous Linux...
62
GeeXLab - forum en français / Re: Updater un fragment shader
« Last post by ariovistus on June 13, 2017, 07:39:17 PM »
Merci pour les infos ! J'avais complètement oublié de préciser que j'utilise exclusivement Linux sauf pour coder sous Visual Studio donc pas de menu pour moi. Existe-t-il une ligne de code magique en Lua sous GeexLab qui permet de charger (ou de recharger) un fragment shader à partir du fichier GLSL ?

L'idée c'est que dans un simple éditeur texte, j'ouvre le frame script Lua dans un onglet et le fragment shader GLSL dans un autre onglet pour piloter l'ensemble. Quand je fais une modif dans le shader, je sauvegarde le fichier puis dans le frame script Lua j'initialise la variable "reload" à 1 au début du script pour qu'il recharge le shader. Quand les changements sont pris en compte, j'initialise la variable à 0 et je sauvegarde à nouveau le frame script  pour qu'il arrête de recharger le shader.

Pourquoi la seconde facon de live-coder les shaders n'existe pas? Aucune idée!  Je vais regarder l'ajout de cette fonctionnalité très prochainement.
Ca serait génial  8)
63
Boost.Compute is a GPU/parallel-computing library for C++ based on OpenCL.

The core library is a thin C++ wrapper over the OpenCL API and provides access to compute devices, contexts, command queues and memory buffers.

On top of the core library is a generic, STL-like interface providing common algorithms (e.g. transform(), accumulate(), sort()) along with common containers (e.g. vector<T>, flat_set<T>). It also features a number of extensions including parallel-computing algorithms (e.g. exclusive_scan(), scatter(), reduce()) and a number of fancy iterators (e.g. transform_iterator<>, permutation_iterator<>, zip_iterator<>).

Links:
- https://github.com/boostorg/compute/
- http://boostorg.github.io/compute/


The development branch brings the full support of OpenCL 2.1:
https://github.com/boostorg/compute/tree/develop



Code sample:
Code: [Select]
#include <vector>
#include <algorithm>
#include <boost/compute.hpp>

namespace compute = boost::compute;

int main()
{
    // get the default compute device
    compute::device gpu = compute::system::default_device();

    // create a compute context and command queue
    compute::context ctx(gpu);
    compute::command_queue queue(ctx, gpu);

    // generate random numbers on the host
    std::vector<float> host_vector(1000000);
    std::generate(host_vector.begin(), host_vector.end(), rand);

    // create vector on the device
    compute::vector<float> device_vector(1000000, ctx);

    // copy data to the device
    compute::copy(
        host_vector.begin(), host_vector.end(), device_vector.begin(), queue
    );

    // sort data on the device
    compute::sort(
        device_vector.begin(), device_vector.end(), queue
    );

    // copy data back to the host
    compute::copy(
        device_vector.begin(), device_vector.end(), host_vector.begin(), queue
    );

    return 0;
}
64
3D-Tech News Around The Web / NVIDIA FleX 1.20 beta
« Last post by Stefan on June 11, 2017, 07:16:46 PM »
1.2.0 (beta)
------------

- New API to retrieve particle neighbor information, see NvFlexGetNeighbors()
- New API to support shape collision filtering, collision channels can be assigned to particles and shapes to specify which pairs collide, see NvFlexPhase
- New API to support per-shape plastic deformation, it is now possible to specify plastic creep and threshold coefficient on a per-shape basis (previous global settings), see NvFlexSetRigids()
- New API to selectively disable solver features, this can lead to improved performance, see NvFlexFeatureMode, replaces global FlexParams::fluid option
- New API to allow sub-range particle buffer updates, see NvFlexCopyDesc
- New API for asynchronous compute, see NvFlexInitDesc
- Fix for unnecessary synchronization when calling NvFlexMap() on a device buffer
- Fix numerical precision for shape-matching constraints with large coordinates
- Fix for uninitialized contact indices returned from NvFlexGetContacts() if NvFlexUpdateSolver() has not been called
- Fix for SDF collision in D3D12
- Fix for D3D warning when using NvFlexSetRigids()
- Add D3D12 rendering support to the demo
- Add support for device NvFlexBuffers on D3D
- Enable NvToolkit profiling zones so to provide annotations in NSight profiles by default

Known Issues
------------

- Demo rendering artifacts in D3D12 fullscreen on AMD platforms
- NvFlexGetTimers() may report incorrect values on D3D12
- Crash on inflatable test scenes on some Kepler class GPUs


65
GeeXLab - forum en français / Re: Updater un fragment shader
« Last post by JeGX on June 11, 2017, 01:45:17 PM »
Hyperion, ca fait bien longtemps! Effectivement GeeXLab est la version un peu plus moderne de l'ancetre Hyperion.

Dans la version actuelle de GeeXLab, le live-coding existe pour les scripts Lua/Python (essentiellement les scripts FRAMES) et les shaders GLSL.

Pour les scripts deux facons de live-coder sont disponibles (sous Windows):
1/ menu Tools > Open built-in script live-updater.
2/ en codant le script FRAME dans un fichier lua/py séparée et en ajoutant l'attribut update_from_file_every_frame="1" dans le node script en XML. Dès qu'un changement est fait dans le fichier, le script est mis à jour.  Une demo est dispo dans le code sample pack (gl-21/live-coding/live-coding-02.xml)

Pour les shaders, une seule facon de live-coder existe sous Windows:
1/ menu Tools > Open built-in GPU program live-updater.

Pourquoi la seconde facon de live-coder les shaders n'existe pas? Aucune idée!  Je vais regarder l'ajout de cette fonctionnalité très prochainement.

Sinon en attendant, essaies la technique que tu as évoquée. Pour éviter de reloader le shader à chaque frame, ajoute un petit délai entre deux reloading, genre 1 seconde.




66
GeeXLab - forum en français / Updater un fragment shader
« Last post by ariovistus on June 10, 2017, 07:25:56 AM »
Hello. Tout d'abord félicitations pour le logiciel GeeXLab que j'avais découvert en 2007 sous le nom d'Hyperion. J'ai vu qu'il était possible d'utiliser des frame scripts en mode "live-coding" mais est-il également possible de faire la même chose avec les fragment shaders ? En gros je voudrais pouvoir ouvrir un fragment shader GLSL dans un editeur de texte, modifier une fonction compliquée dedans, le sauvegarder et que GeeXLab le relise à nouveau à partir du fichier pour tenir compte des modifications (sans avoir à fermer et à relancer GeeXLab).

En gros, j'ouvre le fragment shader et le frame script dans un éditeur texte et dans mon frame script je mets quelque chose comme :

var reload = 0
if (reload == 1) then
  //kill shader, reload shader from file
end
reload = 0

Si j'initialise reload à 1 au début du script, le shader est updaté juste une fois quand je le change, sinon il serait rechargé après chaque frame.
67
3D-Tech News Around The Web / NVIDIA Vulkan beta driver 382.58
« Last post by Stefan on June 10, 2017, 02:42:42 AM »
Windows driver version 382.58 and Linux driver version 381.26.03 provide new features for Vulkan developers to test their upcoming Vulkan applications.


Windows 382.58
  Linux 381.26.03
 Release Updates June 9th, 2017 - Windows 382.58, Linux 381.26.03
 
  • New extensions:
  • Updated VulkanRT loader to 1.0.49.0
  • Various performance improvements


  This driver silently fixes Trouble with VK_NVX_device_generated_commands



 
 
68
Samsung has unveiled the CHG90, the first 49-inch gaming monitor.

Main features:

- Resolution of 3840x1080 (DFHD or Double FullHD)
- AMD’s new Radeon FreeSync 2 technology
- High Dynamic Range (HDR) picture enhancement technology
- QLED Quantum Dot technology
- supports 125 percent of the sRGB color space
- ultra-wide 178-degree viewing angle

The 49-inch CHG90 is now available for pre-order on Amazon.com and at local Micro Center retail stores for $1499.

The complete press-release is available HERE.


69
3D-Tech News Around The Web / NVIDIA 382.53 WHQL Graphics Driver Released
« Last post by JeGX on June 09, 2017, 04:43:04 PM »
Quote
Provides the optimal gaming experience for DiRT 4 and Nex Machina

Desktop downloads
- win10 x64
- win10 x32
- win7 / win8 x64
- win7 / win8 x32

Notebook downloads
- win10 x64
- win10 x32
- win7 / win8 x64
- win7 / win8 x32




70
3D-Tech News Around The Web / Re: AMD Crimson ReLive Edition 17.6.1
« Last post by JeGX on June 09, 2017, 03:02:20 PM »
Radeon R9 290X:




Pages: 1 ... 5 6 [7] 8 9 10