在多个视口或通道上同步 Triton
在使用多台计算机同时渲染多个视口的多通道模拟器中,你需要确保海洋在不同的系统中被一致渲染。
幸运的是,Triton::Ocean::Draw()需要一个明确的时间样本作为其参数。只要你在各通道中同步传递时间,显示就应该是一致的。
波浪的产生有一个随机成分,它只是使用标准的rand()函数。用srand()对每个通道进行初始化,你应该会没事。另外,参考Triton::RandomNumberGenerator类的文档--你可以子类化这个接口,并使用Environment::SetRandomNumberGenerator()方法向Triton提供你自己的随机数发生器。
当在一台计算机上运行多个窗口时,你需要为使用中的每个单独的图形上下文维护单独的海洋和环境实例。重要的是,Ocean::Draw是从创建Ocean和环境的同一线程和GL上下文中调用的。
渝公网安备50010702505508